|
发表于 2008-11-14 13:12:38
|
显示全部楼层
以下是代码:
" i! y3 B3 m. Wpublic class PeopleAndLight {* s: ?: w1 k2 w9 ~0 i; q9 s$ O
, `* n& [+ m' T2 A) q; @
public static void main(String[] args) {
! U7 B6 w: P+ w; D, w, i int[] People = new int[100];
* g+ h) y. B' P# } boolean[] Way = new boolean[100];
( s3 n# e( Z6 A/ x) {6 ]( g# i r3 _" @1 o
for (int i = 0; i < 100; i++) {; _" ] m: h6 r% b% |2 S& \0 O
People = i + 1; // 设置人的编号1 Q. M" V9 A1 z
Way = false;
& s, Q& Y% l# g }
$ t1 G! D! w+ L+ G' j; C
/ ?' l) G& T; m o* x4 b for (int i=0; i<;People.length; i++) {
7 i# B- C. K& r* e0 M+ P6 V int pno = i + 1; // 当前某人的编号) |1 b: q4 W" {5 W# O b' X4 Q0 _3 G: R+ Y
for (int j=0; j<Way.length; j++) {
8 D" a2 S _* k# k int lno = j + 1; //当前灯的编号 {3 s; J/ r* X/ `: J* V
if (lno % pno == 0)
" J3 |/ x2 y" H3 \4 Q1 Z% r Way[j] = !Way[j];
' P' V5 g" \ T& X6 _! F5 ^- k }% ?: M/ }+ y& o- }' d& p- \. _0 C; J
}/ j/ \# F, P- ?7 a7 | z
% N2 V; \$ _2 H! G) S3 _
int count = 0;
' i* H+ [* a' d2 {) l& Q for (int i=0; i<Way.length; i++) {
9 _- ]8 m, `5 x+ j8 K5 M if (Way == true)
4 I/ _- @8 C0 n count ++;
1 x' l( n* F8 {; c1 u }
' [+ m8 b; u9 O+ l9 C 5 d1 s- \& g# z b3 J+ J. m; R
System.out.println(count);+ Y8 Z; x5 L4 s/ F" [0 O% n+ G
}
" l. e; D) _- c2 ^2 e}
! }3 i( `- Z6 B/ ^6 F% F- ]# M' o+ I/ M7 M9 }6 p
编程环境:JAVA 1.6 IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.10/ X( q' }( ?, ^; T" C% R
) m1 ]6 ~2 I( f7 V) y( Y( x
这题很容易,不被迷惑就很容易。
7 f; m3 v7 n( k
7 X5 ^+ }" a: D一个人一个人的过去,和一群人按顺序过去的结果是一样的
9 P' d8 D8 R+ G" a: H3 s6 f9 ^4 t1 I$ \
结果是:10
3 L7 j0 v9 i( Q* g, l4 I" D; c9 Y( e
8 L3 }- j+ U1 P
- u1 a+ m7 n6 w( [! F) S' U# z# e
1 S* ?- y$ }% ?0 F2 K( L. e# i6 p! z* g1 @' t
[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ] |
|