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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

【CACY编程交流赛第001期】

[复制链接]
发表于 2008-11-14 13:12:37 | 显示全部楼层 |阅读模式
500
本帖最后由 戒律 于 2008-12-19 17:15 编辑
2 m+ ^# T- e7 x0 P  R+ h5 e1 Z$ |9 |& R8 z. e  L( d
题目:
4 C- q. M& S7 @6 ?+ k2 _6 G6 c6 m
有一条走廊,走廊天花板上有100盏灯,每个灯都有一个开关,编号分别为1、2、3、...、99、100,开始时所有的灯处于熄灭状态。现在有100个人,编号分别为1、2、3、...、99、100,依次从走廊经过,当经过某盏灯时,若灯的编号是人的编号的倍数,则人就按一下该灯的开关,问所有人经过之后有多少盏灯是亮着的?* b9 _3 L/ F& z7 r* ^
' X  I1 F0 o1 o* u
要求:
1 P( {! k/ f; H/ k, ?; ~, E- B
6 O7 T; k# h1 V6 {! U1 u面向诚毅学院广大编程爱好者征集解题方法,编程语言不限。请参赛者将作品压缩打包(需包括源代码,编译运行截图及一份说明参赛者姓名,专业班级,联系方式,编程环境和解题思路的文档)发送至邮箱:125275701@qq.com
) x5 A5 t: I: |4 G* z  [
+ t$ M" e4 h. F& U' ~截稿时间:2008.11.208 N  l) M9 N: B8 x( H
1 }) r# X6 x# ^$ a
咨询QQ:125275701
- d& H: t$ i4 S& U9 d, Q% l2 @
1 K, n5 j# v# F9 O8 SCACY编程交流群:8547232( b1 L' K' u* E8 L
% r9 ]' H+ g9 F. F) a
                                                                                                            ——by:CACY创新实践小组4 m5 Q! W3 h. W, d" q' q" I+ S
/ ?. N# p8 x; s- I4 ]) W
; ]& B# ?4 ?; G
[ 本帖最后由 戒律 于 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 | 显示全部楼层
以下是代码:( s1 |, c9 k  l5 }3 x/ N6 z9 `5 p
public class PeopleAndLight {
/ M& p+ X3 t- d
$ T5 ]& M# _" j% B    public static void main(String[] args) {
! r0 d+ A# F) y' x$ V8 p        int[] People = new int[100];
1 S% i" f8 y" E# k4 F0 b        boolean[] Way = new boolean[100];
( t) x7 M7 K4 q5 j; g9 ?1 s8 T0 }9 j( y8 ~" x' \
        for (int i = 0; i < 100; i++) {4 ?9 V, z7 u- g7 E$ P6 b- X
            People = i + 1; // 设置人的编号
% u" j, Q; j. `; K8 G5 S* g2 l            Way = false;
) e# P2 F4 n, I        }
: b) W- X/ p& P8 I# q1 `4 V4 b9 [9 a4 w# B; n: l; _! L
        for (int i=0; i<;People.length; i++) {
6 d" c# v2 b: x0 |            int pno = i + 1; // 当前某人的编号# ?! B. r5 A9 f( L0 |. P
            for (int j=0; j<Way.length; j++) {5 F5 c/ P: p+ v+ C5 m
                int lno = j + 1; //当前灯的编号) q& j# F) I6 I! n0 a% V: A
                if (lno % pno == 0)* _4 S4 u9 ~& ^7 @. o
                    Way[j] = !Way[j];
+ x/ v9 r1 x) J( Y            }* t8 Q$ s5 e- M0 p
        }
, l- e- ]# s, T$ M: F% N        5 u; z; \( u* V+ {$ f" |
        int count = 0;, h9 A) C$ @' j3 S
        for (int i=0; i<Way.length; i++) {
! h) R+ Z7 F9 N            if (Way == true). D3 k$ x) b" u2 m2 M
                count ++;
& a3 c1 s0 y( M8 h, |3 s        }# B' \; Q1 O) q& L$ I1 Q2 m( ~
        
8 n8 L9 I# ^! ~+ C        System.out.println(count);
; g6 R& n2 B2 o5 N/ T! d( z' t: j    }
/ ^3 S" R- u6 x3 }: ]}
* ]/ x. c3 }  {6 @$ R2 \3 I# i7 ~: b% Y
编程环境:JAVA 1.6  IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.105 u3 M1 ~! d0 [6 U* o* ^$ C1 k- O

% [/ X& r" ~9 d  O2 U这题很容易,不被迷惑就很容易。
% V% P! T/ D' H# ?, @8 V* Q" h* r8 Y5 F
一个人一个人的过去,和一群人按顺序过去的结果是一样的
) U9 b+ A) i4 T3 G5 [+ f
% W. Y6 k' Q$ N1 h' ^# ^结果是:10% w4 V% x" J- M1 G1 v4 _8 O

# u2 d" U( t9 J  g8 S( o/ W* ^
7 }9 u0 ?% O* O+ `
; {& M: K, u3 w
1 j. E( @( P; b3 A9 |) C; H2 z
[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ]
回复

使用道具 举报

发表于 2008-11-14 14:23:21 | 显示全部楼层
。。。我数学分数一直徘徊在30分左右。。。
5 U. Z  e7 C9 I不用编程,直接列个数学方程式出来算不算。。
回复

使用道具 举报

发表于 2008-11-14 15:51:47 | 显示全部楼层
提示:不要从算法下手,应该从倍数方面着手3 E; @, M. d  w( i9 L2 q
答案是:10
回复

使用道具 举报

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

使用道具 举报

发表于 2008-11-16 23:04:47 | 显示全部楼层
汗,怎么一下子就被采纳了。
$ M; l. Q3 t' A% b% D5 H' ?$ L" ]
上面代码因HTML的关系好像有些被弄没了
/ Z0 b7 W( s3 {* Z6 s4 n' g+ D" |" ]- Q* Q# G
  1. public class PeopleAndLight {
    ' j% J; q8 n: d! E& G

  2. 2 z6 p7 d- W. W3 X! G
  3.         public static void main(String[] args) {
    % N/ R% b" o, N9 W0 P& i
  4.                 int[] People = new int[100];
    3 t, D! e! L9 ~* M. m* I$ G) {+ R7 e
  5.                 boolean[] Way = new boolean[100];
    0 T6 G7 _) w  s1 x9 M/ g1 u
  6. 1 q, K# Z$ q5 a' P9 |
  7.                 for (int i = 0; i < 100; i++) {# Z& M7 x4 v, Y: F& B# a
  8.                         People[i] = i + 1; // 设置人的编号
    $ D& {  k7 `+ h7 [0 v, e% g  q
  9.                         Way[i] = false;2 m- ]8 I  O. M+ `7 j+ {2 ~2 f2 a
  10.                 }6 }. ?! y. Y* p. y

  11. ) D/ m% C/ _0 Q; R4 I5 P
  12.                 for (int i=0; i<People.length; i++) {
    0 G/ A, h, M' B. f
  13.                         int pno = i + 1; // 当前某人的编号/ Q3 G! v2 b0 E; R
  14.                         for (int j=0; j<Way.length; j++) {
    % E% ?9 d. Q  t) w. t" k! \
  15.                                 int lno = j + 1; //当前灯的编号0 I( B8 G4 m! @* L( l4 p$ t; X/ [& K
  16.                                 if (lno % pno == 0)  I* `# S$ t6 Y. H! G
  17.                                         Way[j] = !Way[j];
    # o# P$ R1 L2 ?: x: \7 d. F8 w
  18.                         }/ E6 G/ H" v" s% a
  19.                 }+ a' V# u5 W+ w7 P9 F2 P9 z
  20.                
    ! j" N/ K- W' I  g9 t
  21.                 int count = 0;
    % k  N6 E1 D9 ^! g. J" l% h
  22.                 for (int i=0; i<Way.length; i++) {
    & h. e7 j* p3 _. A5 ~, t! p
  23.                         if (Way[i] == true)2 R- P% |9 i7 L4 }
  24.                                 count ++;# Z5 ]/ j3 h% y$ W' R5 `3 z
  25.                 }
    $ a3 H& K+ i! K" A& r
  26.                
    0 N! K' M. B6 R/ A% W$ o) b
  27.                 System.out.println(count);2 W4 W( \  Y+ J( [" R% a; N5 u
  28.         }6 T' n+ F7 u4 M1 O
  29. }
    ; n- D- T6 l: `+ p! `' K  t3 `: C
复制代码

+ D; a6 g0 }+ H7 [6 U6 E, P+ 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-3-4 11:46 , Processed in 0.053588 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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