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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

【CACY编程交流赛第001期】

[复制链接]
发表于 2008-11-14 13:12:37 | 显示全部楼层 |阅读模式
500
本帖最后由 戒律 于 2008-12-19 17:15 编辑 " I% w9 i4 p" F, t
- ~$ K9 O  R# q7 y
题目:
' r7 Y1 v. J- C% F
" s# M5 F* D8 {3 _% v  ]" r; x6 Z5 Q有一条走廊,走廊天花板上有100盏灯,每个灯都有一个开关,编号分别为1、2、3、...、99、100,开始时所有的灯处于熄灭状态。现在有100个人,编号分别为1、2、3、...、99、100,依次从走廊经过,当经过某盏灯时,若灯的编号是人的编号的倍数,则人就按一下该灯的开关,问所有人经过之后有多少盏灯是亮着的?
: t# y6 f3 j2 K  H; j( h, l4 c* Y1 o$ m+ W) r5 O
要求:4 Q) B! m& C  b3 k/ S8 n5 R4 G9 N
$ Y  V0 Y' c3 U# e( E+ I, ]
面向诚毅学院广大编程爱好者征集解题方法,编程语言不限。请参赛者将作品压缩打包(需包括源代码,编译运行截图及一份说明参赛者姓名,专业班级,联系方式,编程环境和解题思路的文档)发送至邮箱:125275701@qq.com5 E+ E  Y7 l1 D- q
9 D) a+ J' X  r- ?9 R
截稿时间:2008.11.20# |( b& f2 w/ W# C
5 g0 f( h  v' c) ]( q! B3 w
咨询QQ:125275701' h+ p! U5 t8 y: A; r$ g
* A3 D6 {% Y. H9 Q) ?+ U3 ~
CACY编程交流群:85472327 J0 Y1 [; A3 q# v* _
( g! {4 V; K" l2 K
                                                                                                            ——by:CACY创新实践小组
' ^/ C; ~1 ~- o2 d' v# N' T3 o
. j( b+ C" d3 b3 H: V& q* ~

3 a( F# `8 b1 B. z  K. ~6 B& v[ 本帖最后由 戒律 于 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 | 显示全部楼层
以下是代码:
& Z6 V1 e7 M# ^8 }7 ^% Lpublic class PeopleAndLight {
) `* |3 P( @8 _+ I8 b+ n- S
7 ?$ S$ u4 \; ]6 r    public static void main(String[] args) {& p: o- e5 x, [, a& ~
        int[] People = new int[100];
( g. \6 k3 O: u2 \, \) u  R        boolean[] Way = new boolean[100];
8 a: ~, y+ e! |/ P5 t* X8 @5 |' b. j) l0 _- T6 W7 Y
        for (int i = 0; i < 100; i++) {
" a6 W' z9 }( P7 b            People = i + 1; // 设置人的编号
+ A; ?9 j  l8 X: L" b+ }+ G            Way = false;  C( P7 A2 Q1 N) S& ^9 b
        }
/ E+ X% O3 {+ z( X( s" |* Q' h4 a1 n
        for (int i=0; i<;People.length; i++) {9 o) }; I; R* k2 K" n
            int pno = i + 1; // 当前某人的编号) Z  l) Z7 ^8 \5 ^- f
            for (int j=0; j<Way.length; j++) {: I) d" G" B" x* Y6 M
                int lno = j + 1; //当前灯的编号5 M' v7 J" i9 P5 n( L/ p" Y) y  K
                if (lno % pno == 0)
( K5 S0 x9 C. q) S' ~' f1 J! r                    Way[j] = !Way[j];" u- Q# y9 I; C4 E  B6 h% }) g
            }" \  `7 ]8 ?9 u; s$ J
        }8 j1 {2 n2 ^' [, n. K  h! Y' g4 H
        - W: H3 Y, N0 f2 F
        int count = 0;6 h: x" ?4 x- }) o; G
        for (int i=0; i<Way.length; i++) {4 G) i. ~( Y1 ]
            if (Way == true)
9 m, S  w7 g- t' ]6 H" X- }2 Q                count ++;
9 h* z' _0 g4 X3 w0 I4 v0 ?8 m        }, @6 o- \. I5 d: ?/ x$ B
        . W$ D" Z: [# t" _9 \$ Z  ~' G
        System.out.println(count);! S4 t3 w1 H0 {' ~
    }' n7 q; X) P/ u3 Y0 W+ X! z
}: V  o! {* q6 x! W# f
! t8 \+ m) s+ ?' O9 X( A
编程环境:JAVA 1.6  IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.10
5 s9 b2 U! J. d. Y( g6 b8 i% E
* Y" N$ j9 d% I2 Z* y1 h! L* B这题很容易,不被迷惑就很容易。
9 z1 ^1 \" x6 ?2 Y3 Q5 W. L" u# q  p
一个人一个人的过去,和一群人按顺序过去的结果是一样的
/ u, E8 W" I% \0 D4 }
# X7 K+ h6 d# `, U2 \  v! o结果是:10
; H0 ]/ r$ t* g' Q9 q; N/ g4 d; q# I# x
* H: d7 t: G. p; ^5 Q* U- O

! y9 v9 l2 n+ O" n) h  k# b% x0 I2 x* ]3 D! ~9 O* T
[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ]
回复

使用道具 举报

发表于 2008-11-14 14:23:21 | 显示全部楼层
。。。我数学分数一直徘徊在30分左右。。。  H1 ]* e) Q* ^& g
不用编程,直接列个数学方程式出来算不算。。
回复

使用道具 举报

发表于 2008-11-14 15:51:47 | 显示全部楼层
提示:不要从算法下手,应该从倍数方面着手; \# G6 H3 k* a* g! A, t9 k0 w. P6 w
答案是:10
回复

使用道具 举报

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

使用道具 举报

发表于 2008-11-16 23:04:47 | 显示全部楼层
汗,怎么一下子就被采纳了。: E' i/ U+ g) H. b
& }6 Q4 W8 _( H
上面代码因HTML的关系好像有些被弄没了
* z0 ^/ t6 b7 A/ G1 Q" b
% F7 k; O& H& G7 G- r! \+ _- V0 a
  1. public class PeopleAndLight {
    ; r  q. R0 `- r. u' ~

  2. ; s' t5 u! e, n/ c
  3.         public static void main(String[] args) {
    0 y5 g  [2 s2 U
  4.                 int[] People = new int[100];9 j2 ?" _* W' a& p& I  k& O* e
  5.                 boolean[] Way = new boolean[100];  W- c9 A+ P: d) ]  m+ x) p0 M/ Q' W
  6. 6 G! \: x; L) H% _. }
  7.                 for (int i = 0; i < 100; i++) {
    . [/ o1 y" T% p+ k
  8.                         People[i] = i + 1; // 设置人的编号
    7 r5 d! M+ ]2 t
  9.                         Way[i] = false;7 i+ U$ O3 \- L  R5 R+ b0 w
  10.                 }, R1 N" r; `/ C
  11. 1 i1 x+ E2 v4 o, }; g. ]( ]
  12.                 for (int i=0; i<People.length; i++) {
    2 d0 R  j( q1 g$ Z1 p
  13.                         int pno = i + 1; // 当前某人的编号( l: q5 |1 \! Q* J' _5 _
  14.                         for (int j=0; j<Way.length; j++) {
    $ ~7 h$ |; Q; N. W* `  `1 n
  15.                                 int lno = j + 1; //当前灯的编号2 U9 A7 r4 n( h8 m5 G! ]
  16.                                 if (lno % pno == 0)! m, ^/ n9 @, z" y5 m
  17.                                         Way[j] = !Way[j];
    8 q: N, E  c  n( c* P' l
  18.                         }
    ( H9 d  \' D. i; q. o
  19.                 }
    , k, Z# {) j1 \* {8 T/ B! `
  20.                
    2 M- v/ H3 @  K9 L. a: T) O( ?, M5 t
  21.                 int count = 0;
    4 i& t& L8 D3 v; z# [( ?
  22.                 for (int i=0; i<Way.length; i++) {
    2 {/ p, u9 ?4 N) M/ [% V
  23.                         if (Way[i] == true)
    # u. m9 D8 a2 i( ]
  24.                                 count ++;# [- M. g" z5 F. ~' J
  25.                 }
    & e2 \0 k5 p" D! j
  26.                 ; L, ?0 h: s1 O# i8 F9 w& T7 e6 V
  27.                 System.out.println(count);/ ?4 A5 m8 H" D- a$ U& _
  28.         }. S9 ?9 j. @. T8 s
  29. }* a1 Q7 W0 K- I( a4 W
复制代码

9 N4 q5 ?, k) [, P  m[ 本帖最后由 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-1-30 22:45 , Processed in 0.084020 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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