诚毅小家|集美大学生活【集美大学,诚毅学院,水产学院,师范学院,美术学院,财经学院,体育学院,航海学院,集美学村,石鼓路,龙舟池】

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 807|回复: 9

【CACY编程交流赛第001期】

[复制链接]
发表于 2008-11-14 13:12:37 | 显示全部楼层 |阅读模式
500
本帖最后由 戒律 于 2008-12-19 17:15 编辑
! H4 b4 y( [8 v! @3 [# A8 z: L/ s4 f( f; q7 @$ S3 T
题目:
1 [& A9 q& A; q# f
' D# z! N- G% G( e7 d, B有一条走廊,走廊天花板上有100盏灯,每个灯都有一个开关,编号分别为1、2、3、...、99、100,开始时所有的灯处于熄灭状态。现在有100个人,编号分别为1、2、3、...、99、100,依次从走廊经过,当经过某盏灯时,若灯的编号是人的编号的倍数,则人就按一下该灯的开关,问所有人经过之后有多少盏灯是亮着的?4 V8 d8 ]: C  s' h7 ~( F! ?

/ v* R: z1 n' o* h! O9 u6 d% C要求:  J5 }1 w# o) X

0 P# E2 {& |4 i; l0 o面向诚毅学院广大编程爱好者征集解题方法,编程语言不限。请参赛者将作品压缩打包(需包括源代码,编译运行截图及一份说明参赛者姓名,专业班级,联系方式,编程环境和解题思路的文档)发送至邮箱:125275701@qq.com
9 L$ ~$ n4 u# f& d
: ]8 t/ I0 _# m+ O截稿时间:2008.11.20
& O* ~6 g$ h" }# e$ D' o' K* A1 u, C2 Y$ l# \
咨询QQ:1252757014 O) F* G- ~4 {3 s
$ l1 O+ N& I8 w0 j
CACY编程交流群:8547232
/ j1 K- a5 v  l& W/ G! K) w; Z3 W( R- g3 t0 n
                                                                                                            ——by:CACY创新实践小组. V* z" h& ^: b9 T

9 M: i7 e0 J9 Q9 D2 Z  g# j/ f, o9 e/ K) |( P3 n2 @  S
[ 本帖最后由 戒律 于 2008-11-14 13:43 编辑 ]

最佳答案

查看完整内容

以下是代码: public class PeopleAndLight { public static void main(String[] args) { int[] People = new int[100]; boolean[] Way = new boolean[100]; for (int i = 0; i < 100; i++) { People = i + 1; // 设置人的编号 Way = false; } for (int i=0; i
发表于 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 编辑 ]
回复

使用道具 举报

发表于 2008-11-14 14:23:21 | 显示全部楼层
。。。我数学分数一直徘徊在30分左右。。。# m8 Q  u) l, g, x- j& A+ d
不用编程,直接列个数学方程式出来算不算。。
回复

使用道具 举报

发表于 2008-11-14 15:51:47 | 显示全部楼层
提示:不要从算法下手,应该从倍数方面着手4 d. @' f3 r" l* o9 t: y
答案是:10
回复

使用道具 举报

发表于 2008-11-16 22:28:18 | 显示全部楼层
:m41 想了一下,思维好乱
回复

使用道具 举报

发表于 2008-11-16 23:04:47 | 显示全部楼层
汗,怎么一下子就被采纳了。0 ]2 G# v  G4 c3 r$ n
3 s/ _# U* D3 |& N/ u( j
上面代码因HTML的关系好像有些被弄没了
  y* N2 t: ?6 t) o6 D
! y/ G) J; Y0 ?8 m$ Y; ^
  1. public class PeopleAndLight {
    / e# z$ N- I6 Z$ l/ t
  2. 7 o2 m. Z3 D5 E1 L4 S5 C& }0 u
  3.         public static void main(String[] args) {# z1 x0 d5 o. A8 J( e1 }* x
  4.                 int[] People = new int[100];6 `# u' C8 v$ G' Y) u& @
  5.                 boolean[] Way = new boolean[100];
    % {" d6 e' Z; y% C

  6. ) F% Q+ t8 Z# Z1 W+ J5 k
  7.                 for (int i = 0; i < 100; i++) {/ S% g( K- \% a) L0 I/ y
  8.                         People[i] = i + 1; // 设置人的编号
    4 u, g7 V# e+ j* E. f! A' L/ \1 ?
  9.                         Way[i] = false;
    3 Q4 o# Z  u' {( m2 x- U' ?. j7 O
  10.                 }
    1 R) \6 ?7 v% }
  11. , y7 a1 J) D. h* N: Q; f! h  m- z
  12.                 for (int i=0; i<People.length; i++) {$ F' o+ x/ ?! d- s' a1 P# o
  13.                         int pno = i + 1; // 当前某人的编号8 m0 a+ `% t* s2 x3 r, \9 T
  14.                         for (int j=0; j<Way.length; j++) {
    " ?! j3 p: e. v/ {( }5 w
  15.                                 int lno = j + 1; //当前灯的编号9 n. T6 r8 P# F' B* X+ a
  16.                                 if (lno % pno == 0)
    1 t8 j% }6 Z, ^
  17.                                         Way[j] = !Way[j];
    ) ]+ `5 y8 b2 E* a% K1 [$ i
  18.                         }; o( V4 A  g" B( y; U, n
  19.                 }
    3 x7 y( U8 w: E2 A7 \& x6 g6 }
  20.                 : t) h6 Q  y- s" P! U; o: r! \
  21.                 int count = 0;
    ! R) n# B. X% q- `% P7 Z5 C( y4 p
  22.                 for (int i=0; i<Way.length; i++) {
    1 i/ Y1 _  R& z, A
  23.                         if (Way[i] == true)
    ( H) N' k6 G5 K, h% p  r# T7 V
  24.                                 count ++;
    ' t/ @1 A  {% T
  25.                 }
      k* U6 V! L' y8 f0 @+ {) K
  26.                
    ( v# r, Z1 |( U8 R  @: C% n% O4 u
  27.                 System.out.println(count);3 e6 @. f3 l7 @* L: c; k. w" Z
  28.         }. s3 x3 n+ a$ t' R2 O
  29. }  x1 R$ N: z9 p* d6 i
复制代码

  ^6 q4 g& P9 u/ M% ]% T  i[ 本帖最后由 charon 于 2008-11-16 23:07 编辑 ]
回复

使用道具 举报

发表于 2008-11-16 23:09:44 | 显示全部楼层
哈哈我用C编出来了,快给我奖励吧
回复

使用道具 举报

发表于 2008-11-16 23:26:54 | 显示全部楼层
突然发现是错的:(
回复

使用道具 举报

发表于 2008-11-16 23:53:37 | 显示全部楼层
:m38 那答案不是最佳解呀
回复

使用道具 举报

发表于 2008-11-19 15:48:47 | 显示全部楼层
数学白痴偷偷飘过。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|诚毅小家 ( 小家社区工作室 闽ICP备05007965号 )

GMT+8, 2025-4-4 22:38 , Processed in 0.081305 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表