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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

【CACY编程交流赛第001期】

[复制链接]
发表于 2008-11-14 13:12:37 | 显示全部楼层 |阅读模式
500
本帖最后由 戒律 于 2008-12-19 17:15 编辑
4 k5 N$ X2 u! U  K. D9 {# k
7 T$ Y2 @9 ?# \4 k% |6 S1 J题目:( X1 Q, t6 O8 F

+ L+ w# M/ v3 d" S有一条走廊,走廊天花板上有100盏灯,每个灯都有一个开关,编号分别为1、2、3、...、99、100,开始时所有的灯处于熄灭状态。现在有100个人,编号分别为1、2、3、...、99、100,依次从走廊经过,当经过某盏灯时,若灯的编号是人的编号的倍数,则人就按一下该灯的开关,问所有人经过之后有多少盏灯是亮着的?
2 g7 Z/ W5 b9 h3 b: b: _4 M: F/ V
! P/ q; F9 i9 V9 O要求:
, Q+ I: |2 @9 ~8 ^* q% q) h7 s1 Q4 {: ^5 z
面向诚毅学院广大编程爱好者征集解题方法,编程语言不限。请参赛者将作品压缩打包(需包括源代码,编译运行截图及一份说明参赛者姓名,专业班级,联系方式,编程环境和解题思路的文档)发送至邮箱:125275701@qq.com" G/ O; t  x& p+ i( a) G7 c! H
( u2 Q9 q" s- a0 ^/ L5 E' ^2 {/ K
截稿时间:2008.11.20
* U" |6 O% W0 B( Q
8 N" A" d$ `! l, h) j2 k咨询QQ:1252757018 l7 }. b; c& u  Y6 G9 @
0 {1 M2 z% T# K7 @$ \9 |+ M- r& ?
CACY编程交流群:8547232+ B+ s) s: z" r+ p2 r# q
/ b8 T* y8 J7 }. e
                                                                                                            ——by:CACY创新实践小组; J& z& z3 }! \% I
: f) W- V' b3 b& ?2 t# q  D

6 S2 `+ i  w; u# @' Q+ z[ 本帖最后由 戒律 于 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 | 显示全部楼层
以下是代码:6 v: H# M& Z$ V* z: n& ~
public class PeopleAndLight {
& w) h6 o* S: w* a; f% \0 u# }5 h/ V
    public static void main(String[] args) {
( ]* k' i: v4 ]0 z        int[] People = new int[100];
8 [+ e' q; g8 {9 ~        boolean[] Way = new boolean[100];
. D. V9 B* }8 `7 `& E9 X  [8 D, ?% E3 H6 Z' ?/ F
        for (int i = 0; i < 100; i++) {  |2 G% W, h4 h( n  n; q/ {
            People = i + 1; // 设置人的编号2 |, `" W& j/ M3 C
            Way = false;
) y# x+ H4 T* M" k9 l) E+ Y        }
2 K9 V% Q2 g4 M& N  o( r5 a5 ~0 ?# ]( |' ?& {' `" d
        for (int i=0; i<;People.length; i++) {) B9 f# U4 N5 N% n, M
            int pno = i + 1; // 当前某人的编号2 B# U- _' L' R3 G% w
            for (int j=0; j<Way.length; j++) {
  P- x: Z$ Y3 o                int lno = j + 1; //当前灯的编号
( G* y1 V8 m4 Q9 ?$ @/ x+ c- W                if (lno % pno == 0)
9 t2 j' m6 c8 ]9 X                    Way[j] = !Way[j];9 e/ @6 C) u3 I9 \$ z) I" C
            }
; Z$ U! C3 @+ R8 S6 {        }
1 U- l/ r7 T4 _* T5 a3 \2 |. c, C        
3 F$ p* _' T9 j$ Z* p        int count = 0;- L% v: I5 P, z; z% _
        for (int i=0; i<Way.length; i++) {; e! C+ m$ ]+ m5 e% Z
            if (Way == true)- _+ k1 h8 \# i5 l/ ^0 _
                count ++;
) G1 ~4 |; [; V8 b5 g8 k        }' e/ B, l2 W- g. l" X5 C% a7 T
        
, w4 c: C' |/ h, X        System.out.println(count);8 z1 g$ c6 ?2 [: O8 @, h5 C
    }: y' Z0 i) }$ l6 B4 h3 i$ N" {
}+ L* g2 _8 C$ f4 y/ L7 N, m
# `2 j% d9 U  k" Y6 {5 S# i9 K- s
编程环境:JAVA 1.6  IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.108 r2 [" H- i0 j; o1 R

& X" x. W$ N8 f& B! B2 P7 i这题很容易,不被迷惑就很容易。& m* m* p1 q+ F+ v. f0 g) C( P% v

+ {  D; W+ @- x+ v7 Q一个人一个人的过去,和一群人按顺序过去的结果是一样的4 X% s/ E  X$ x/ @* P( x
8 O# w$ E. F" P# W5 B. ~  `0 U" c! W
结果是:10
# O- E+ Z$ L4 V# b; t- s8 p9 n3 X( J  L' i" E  b. D4 h
0 d) k, P% w5 ?

; ^- E8 `/ c* A0 J4 I1 s0 B7 R+ e: B, H
[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ]
回复

使用道具 举报

发表于 2008-11-14 14:23:21 | 显示全部楼层
。。。我数学分数一直徘徊在30分左右。。。8 F/ W/ n1 G' `8 u! E0 b: Q4 H$ [
不用编程,直接列个数学方程式出来算不算。。
回复

使用道具 举报

发表于 2008-11-14 15:51:47 | 显示全部楼层
提示:不要从算法下手,应该从倍数方面着手' d) P; s" B& N3 o. E$ w7 G9 n
答案是:10
回复

使用道具 举报

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

使用道具 举报

发表于 2008-11-16 23:04:47 | 显示全部楼层
汗,怎么一下子就被采纳了。
' n" `/ [8 E; [+ |0 r
5 R6 }% E" u! }: a' k$ M# p上面代码因HTML的关系好像有些被弄没了& J: C+ Y) ?+ x5 `& u

# V  n$ |& k3 k( W4 K# J  Q
  1. public class PeopleAndLight {" d: s; L6 L& t7 y6 O/ W

  2. 7 g" I5 l6 `" W; j4 n
  3.         public static void main(String[] args) {+ d5 x+ ]$ e6 E7 }9 T
  4.                 int[] People = new int[100];' h# d- g) G+ ]# x
  5.                 boolean[] Way = new boolean[100];
    # ?! ^$ e& p9 c: G8 G
  6. 0 ]# E' k( A8 }1 j8 k
  7.                 for (int i = 0; i < 100; i++) {; n9 }- A) P, O; ~3 r1 u* J
  8.                         People[i] = i + 1; // 设置人的编号
    & U( X3 z6 g% [! g, c" o& a
  9.                         Way[i] = false;
    / _( P+ b/ n& Y1 C2 E6 F! \  v* d& X
  10.                 }2 x& z0 H$ p: `$ Q8 M
  11. ; A+ ], p3 q6 v1 y
  12.                 for (int i=0; i<People.length; i++) {
      T) C" Y! z5 |1 Q8 z2 D, u6 z
  13.                         int pno = i + 1; // 当前某人的编号
    $ t/ O! C; K  G! @
  14.                         for (int j=0; j<Way.length; j++) {( ^% k1 d) {4 T* ?& X  E& k# j
  15.                                 int lno = j + 1; //当前灯的编号
    9 D% O- V4 K; A" A, ]
  16.                                 if (lno % pno == 0)7 @# w2 F' \6 j+ A; Q: t
  17.                                         Way[j] = !Way[j];
    ( l. T2 `- H( b+ ]$ K* u
  18.                         }+ ^5 s* u4 P# K
  19.                 }$ _, R* ~1 r, P* ?! c' R
  20.                 7 c* N# |1 f( y* g$ d* J# u
  21.                 int count = 0;
    " @/ k+ ^! S/ H. t
  22.                 for (int i=0; i<Way.length; i++) {" F; G- u! k4 g
  23.                         if (Way[i] == true)2 O1 v% |; f5 r- I
  24.                                 count ++;" }6 ~, `% m& _
  25.                 }2 B: J; o1 ~1 `4 }
  26.                 5 w$ u, W# K( l9 M0 r
  27.                 System.out.println(count);
    , Z$ J4 X7 }+ `6 Y
  28.         }
    , H& x" [( `; \9 `
  29. }
    2 P2 H- w1 L6 n2 S5 B& n2 k
复制代码
1 O5 `1 T/ I* s5 R' {) V
[ 本帖最后由 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, 2024-11-22 03:44 , Processed in 0.050380 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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