|
发表于 2008-11-14 13:12:38
|
显示全部楼层
以下是代码:; Q% O0 G1 ?) J
public class PeopleAndLight {
2 W+ j& `) j% K8 Q! V- j+ x' m
& `' t3 J4 ^' w6 L y( t4 J6 d7 s ? public static void main(String[] args) {7 z, @4 Z# n! n ?' e
int[] People = new int[100];
, H4 D( y. Y* X { P6 r boolean[] Way = new boolean[100];
& Y3 _/ |' b4 {' n$ Z$ x$ e; b* r7 O
7 I- k2 x6 I0 K, E for (int i = 0; i < 100; i++) {1 j/ N$ N3 I) J2 f- B) U
People = i + 1; // 设置人的编号4 `4 z; u1 {4 M, B+ h' b
Way = false;
( l) h. f2 F% q, N3 W4 ?7 q }
# @! T; k0 h$ s# k5 @
7 \. b" y" k9 J for (int i=0; i<;People.length; i++) {
0 U) p% T/ P, Y \- Z+ G6 i int pno = i + 1; // 当前某人的编号
9 x0 j4 _0 r! x2 B8 T) q for (int j=0; j<Way.length; j++) {
% Z2 c6 K0 [8 ~% o) O int lno = j + 1; //当前灯的编号' V5 A+ p4 F M, a& Y
if (lno % pno == 0)% Y7 x$ {4 r/ O9 g9 p6 E
Way[j] = !Way[j];( z8 m# B. L/ r6 `* Y: U
}
1 m$ g: ?' G$ C8 Q% |; ? b. A6 ^) I }
$ h& F0 |: ]! b- R( x( d" ]
1 g; J; J0 v" V0 m int count = 0;
) \/ ~$ s0 B# \8 A# t$ l l& q! M/ C for (int i=0; i<Way.length; i++) {5 c% }# C% c) ^4 v, @+ P
if (Way == true)0 m/ P+ N( F" V w) x: [" q9 G
count ++;- U# k1 Q. O1 u2 [; y
}
' Z, `- W7 T; N0 Y- u + s& z/ S! u" M8 Y$ r9 I# M M$ A
System.out.println(count);
2 w: u" G) L* m4 {3 p% N1 c% f) I+ C }: ?8 L. H3 O5 T8 t
}: h5 b3 L3 l5 c5 W7 i: W& c& w
( U% B2 a/ O' K e3 `/ \6 h编程环境:JAVA 1.6 IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.10
9 ~8 p. Z; A6 k# m! F% S
8 I- a' _2 P; ?, h; F这题很容易,不被迷惑就很容易。
! Z% v% ]2 } k% G* f$ N
9 v+ ?8 s$ |7 s) M: [1 r: k e一个人一个人的过去,和一群人按顺序过去的结果是一样的
! c4 }: }8 d: c$ Y/ h
& q" M2 G0 a9 l U结果是:10
1 ?$ C8 l" s6 f- J5 r% p3 J! n+ n) Y) F& i2 h' Q0 [
. d* N; R. \3 Y; B
4 c I# s* F3 q0 j M8 t4 `, _) z, f6 v9 N- b; a9 S
[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ] |
|