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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

【CACY编程交流赛第001期】

[复制链接]
发表于 2008-11-14 13:12:37 | 显示全部楼层 |阅读模式
500
本帖最后由 戒律 于 2008-12-19 17:15 编辑
$ F! ]# ]9 j, p% S; @3 O2 j9 _5 t/ c( B7 l# u& H, a) U% [# R& ^
题目:
# H; e( R3 ^; Y; L7 i% U' s' K' H: H. |, c# ~/ c
有一条走廊,走廊天花板上有100盏灯,每个灯都有一个开关,编号分别为1、2、3、...、99、100,开始时所有的灯处于熄灭状态。现在有100个人,编号分别为1、2、3、...、99、100,依次从走廊经过,当经过某盏灯时,若灯的编号是人的编号的倍数,则人就按一下该灯的开关,问所有人经过之后有多少盏灯是亮着的?* ^' H/ r, r& `
; g3 H+ q9 m! z$ P  x
要求:
7 @8 e' Y# A- R& N/ h
% M7 V$ ]2 c, K5 B: ?* B2 {面向诚毅学院广大编程爱好者征集解题方法,编程语言不限。请参赛者将作品压缩打包(需包括源代码,编译运行截图及一份说明参赛者姓名,专业班级,联系方式,编程环境和解题思路的文档)发送至邮箱:125275701@qq.com- F' G) B/ X. t& p4 w! u5 t: h1 w

3 X% X" v8 }. a- O7 H$ U截稿时间:2008.11.20
0 j. ~' M6 Y; P8 I) D/ _! d( e% ^
1 m: o0 y. }& U咨询QQ:125275701
, j- [  {5 y. b& }* ?
2 V9 K. R+ k9 e3 Z7 f8 ICACY编程交流群:8547232
4 G% J0 T# V( t* t. ^& x
% A5 r& V. o8 }# S% y/ R3 m/ `' w                                                                                                            ——by:CACY创新实践小组
) O. B5 B3 w$ D4 q& a, q7 C, R
3 @/ P# W1 G' {. b0 q
2 G; f7 X; V8 ?9 N  \
[ 本帖最后由 戒律 于 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 | 显示全部楼层
以下是代码:1 t* ~4 |0 @) n
public class PeopleAndLight {
3 b5 p6 F: q& [* s0 {3 y) ~: p# y" R' C" ^
    public static void main(String[] args) {! t  Z% z( }0 {4 s
        int[] People = new int[100];
7 Z' d% m& h) S% j  r$ k8 O* V8 L: j        boolean[] Way = new boolean[100];9 l6 W: z- Y8 B" u$ |. D0 H

" n- _; \2 c; G1 ?        for (int i = 0; i < 100; i++) {
  d/ P4 [" K; i8 o( g            People = i + 1; // 设置人的编号
8 _' G& `. ]) [$ n& Q0 l            Way = false;
& A! X9 G9 P8 ]* q        }, X- a4 ]4 r" H. `
/ T8 [2 ]0 n  w1 v2 ^0 i  r
        for (int i=0; i<;People.length; i++) {
' o; I5 \6 y" ?: r& O0 ~            int pno = i + 1; // 当前某人的编号
& r! B) q+ d* ~& Z) U9 G. b. ?            for (int j=0; j<Way.length; j++) {
8 `2 c. a! ~3 ]6 R                int lno = j + 1; //当前灯的编号
0 _9 F4 ^3 b7 A- C4 H; l: k: b                if (lno % pno == 0)
- y  q+ b/ R5 p* R! d: p8 \/ ^                    Way[j] = !Way[j];
/ Q$ N+ N) X% f+ I+ o' V            }8 A) E" t; t% k* _' a
        }
$ v& B0 S7 s% P        
2 u7 m/ D3 R  i  }5 ^5 K  M3 ^$ `8 J' ]        int count = 0;
- z1 X+ l# |: t        for (int i=0; i<Way.length; i++) {7 T. p- d* r& r& \# P, p
            if (Way == true)0 I9 @7 `$ x- O/ L
                count ++;
8 q" _5 F, S. k# O! Q        }
9 v+ Q6 W2 W5 l, m        
- k: f' A) w% G% t8 S8 q) j        System.out.println(count);% {5 g& c9 y: ]+ l
    }
3 _' a& \- j/ C0 _}
; O9 H* Y% ^9 D. J: o
3 I! l4 n, _" N# t5 @0 X; t6 W编程环境:JAVA 1.6  IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.100 L4 W- G. l1 p6 {$ d; o' n8 |& ^& \

' u  F& S- `. |$ J这题很容易,不被迷惑就很容易。
8 X4 a/ E" B  c0 X2 O& R1 f: o6 M$ H5 s; O3 I  q9 B% M2 ]1 `
一个人一个人的过去,和一群人按顺序过去的结果是一样的
; N( E2 S! C( g7 Q
6 Q, ^% W) j/ `. x  h  I6 e: a结果是:10
! _! L/ e) g. x4 g( p% f" ~, Q# ~4 F$ A, ]$ e

% V3 V8 [7 f* F

' D, J8 @& `( B+ P! _/ |
; B  _4 e; [! j3 [[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ]
回复

使用道具 举报

发表于 2008-11-14 14:23:21 | 显示全部楼层
。。。我数学分数一直徘徊在30分左右。。。
; N% Q! C' l& L: n1 q不用编程,直接列个数学方程式出来算不算。。
回复

使用道具 举报

发表于 2008-11-14 15:51:47 | 显示全部楼层
提示:不要从算法下手,应该从倍数方面着手
  ^7 \) u9 _6 A+ Y" v  r* c答案是:10
回复

使用道具 举报

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

使用道具 举报

发表于 2008-11-16 23:04:47 | 显示全部楼层
汗,怎么一下子就被采纳了。
. V- G8 Z! Q# R3 H9 Y; q1 P4 B, ?
上面代码因HTML的关系好像有些被弄没了
+ t" N  V4 {" L! O% w2 {( R
5 G% i8 D! N# y
  1. public class PeopleAndLight {# ]% R) i' k. G  U
  2. " J7 H# i+ b) v- t
  3.         public static void main(String[] args) {
    : G9 P# x5 T, l4 h  y
  4.                 int[] People = new int[100];% o- s7 X1 R1 R. n1 B
  5.                 boolean[] Way = new boolean[100];/ Q: \# V; k/ M0 W- J
  6. + i! j1 ~! |6 s2 r/ ^
  7.                 for (int i = 0; i < 100; i++) {1 X! }% {7 x! v0 c9 b$ |8 P' ?& ^6 v
  8.                         People[i] = i + 1; // 设置人的编号, s* Y1 h, j+ i6 O+ f( @/ h
  9.                         Way[i] = false;
    ( v5 X9 {, v' ?
  10.                 }
    0 ^% i$ b# v8 G+ U, }7 ]

  11. 6 k! [2 Q8 t: Y# x  b
  12.                 for (int i=0; i<People.length; i++) {
    9 F+ F9 v  d/ ^& x+ b
  13.                         int pno = i + 1; // 当前某人的编号7 o: V* G0 O9 p/ H- F
  14.                         for (int j=0; j<Way.length; j++) {
    & [/ ^$ ^( W0 Y: O' n& e
  15.                                 int lno = j + 1; //当前灯的编号
    # x5 l; c# Q, V% c. r! f% B
  16.                                 if (lno % pno == 0)/ s# G( ]2 R) t( {% V6 Y7 `. n
  17.                                         Way[j] = !Way[j];
    * S4 K- I4 A; S. ]2 Y
  18.                         }
    8 V* C6 O1 T/ @7 i
  19.                 }; U0 a# S, o. C
  20.                 $ x. Y2 n- R1 M2 z% e
  21.                 int count = 0;
    $ c5 a7 G9 h3 X7 A8 S
  22.                 for (int i=0; i<Way.length; i++) {+ h7 s$ S' P/ q6 y
  23.                         if (Way[i] == true)
    8 w! ?' k+ W  f  Y! Y' E6 I+ m( v
  24.                                 count ++;; W3 q9 Y" c' ~. w- h" N
  25.                 }
    2 v, e6 Z' g6 {* N% t8 X# a
  26.                
    $ _1 p/ {! w2 _' ~6 D2 ]' B, P
  27.                 System.out.println(count);
    8 k* q/ a2 [8 Z  [; `
  28.         }
    : y6 e$ n  K) l6 o  _$ _8 X. ]
  29. }
    4 V! ]6 e" b" [
复制代码

% |. H  c1 X8 u4 d( Y[ 本帖最后由 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:40 , Processed in 0.053991 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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