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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

【CACY编程交流赛第001期】

[复制链接]
发表于 2008-11-14 13:12:37 | 显示全部楼层 |阅读模式
500
本帖最后由 戒律 于 2008-12-19 17:15 编辑 ! b' i4 p* u, ]
( z0 Q6 s7 F- T& K
题目:$ M1 @( Z7 C" j
- W# {0 |( |3 a  t/ z
有一条走廊,走廊天花板上有100盏灯,每个灯都有一个开关,编号分别为1、2、3、...、99、100,开始时所有的灯处于熄灭状态。现在有100个人,编号分别为1、2、3、...、99、100,依次从走廊经过,当经过某盏灯时,若灯的编号是人的编号的倍数,则人就按一下该灯的开关,问所有人经过之后有多少盏灯是亮着的?# A% }0 }" W4 ~( K& Y) u* `

( ?* C9 x) Z$ J6 t! B/ V要求:
9 g0 e! m- J9 e# S2 ~: ?6 t& x8 X( D$ K# s( J! a# C, S. e- n
面向诚毅学院广大编程爱好者征集解题方法,编程语言不限。请参赛者将作品压缩打包(需包括源代码,编译运行截图及一份说明参赛者姓名,专业班级,联系方式,编程环境和解题思路的文档)发送至邮箱:125275701@qq.com
, W4 e2 i/ t/ l+ Z2 s; |. v0 i3 d* w  e- U- i1 z/ w
截稿时间:2008.11.20
/ a" s' l# C/ D8 o: L  L
! a' [7 K7 Z0 ^) r* u8 u咨询QQ:125275701
& U1 }, n' e8 Q5 l/ A( }4 A7 R. s5 V' V
CACY编程交流群:8547232
, v* n; _& c- r8 M4 K4 p
' @3 e  s' K/ M! i* n7 r+ h# H9 g                                                                                                            ——by:CACY创新实践小组
6 t/ t( f' p! ^& L
7 Y4 A4 v$ i  A' k1 \" ~
% a$ u! _$ G3 m# i. |" k
[ 本帖最后由 戒律 于 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 | 显示全部楼层
以下是代码:; Q% O0 G1 ?) J
public class PeopleAndLight {
2 W+ j& `) j% K8 Q! V- j+ x' m
& `' t3 J4 ^' w6 L  y( t4 J6 d7 s  ?    public static void main(String[] args) {7 z, @4 Z# n! n  ?' e
        int[] People = new int[100];
, H4 D( y. Y* X  {  P6 r        boolean[] Way = new boolean[100];
& Y3 _/ |' b4 {' n$ Z$ x$ e; b* r7 O
7 I- k2 x6 I0 K, E        for (int i = 0; i < 100; i++) {1 j/ N$ N3 I) J2 f- B) U
            People = i + 1; // 设置人的编号4 `4 z; u1 {4 M, B+ h' b
            Way = false;
( l) h. f2 F% q, N3 W4 ?7 q        }
# @! T; k0 h$ s# k5 @
7 \. b" y" k9 J        for (int i=0; i<;People.length; i++) {
0 U) p% T/ P, Y  \- Z+ G6 i            int pno = i + 1; // 当前某人的编号
9 x0 j4 _0 r! x2 B8 T) q            for (int j=0; j<Way.length; j++) {
% Z2 c6 K0 [8 ~% o) O                int lno = j + 1; //当前灯的编号' V5 A+ p4 F  M, a& Y
                if (lno % pno == 0)% Y7 x$ {4 r/ O9 g9 p6 E
                    Way[j] = !Way[j];( z8 m# B. L/ r6 `* Y: U
            }
1 m$ g: ?' G$ C8 Q% |; ?  b. A6 ^) I        }
$ h& F0 |: ]! b- R( x( d" ]        
1 g; J; J0 v" V0 m        int count = 0;
) \/ ~$ s0 B# \8 A# t$ l  l& q! M/ C        for (int i=0; i<Way.length; i++) {5 c% }# C% c) ^4 v, @+ P
            if (Way == true)0 m/ P+ N( F" V  w) x: [" q9 G
                count ++;- U# k1 Q. O1 u2 [; y
        }
' Z, `- W7 T; N0 Y- u        + s& z/ S! u" M8 Y$ r9 I# M  M$ A
        System.out.println(count);
2 w: u" G) L* m4 {3 p% N1 c% f) I+ C    }: ?8 L. H3 O5 T8 t
}: h5 b3 L3 l5 c5 W7 i: W& c& w

( U% B2 a/ O' K  e3 `/ \6 h编程环境:JAVA 1.6  IDE:ECLIPSE 3.2 OS:UBUNTU LINUX 8.10
9 ~8 p. Z; A6 k# m! F% S
8 I- a' _2 P; ?, h; F这题很容易,不被迷惑就很容易。
! Z% v% ]2 }  k% G* f$ N
9 v+ ?8 s$ |7 s) M: [1 r: k  e一个人一个人的过去,和一群人按顺序过去的结果是一样的
! c4 }: }8 d: c$ Y/ h
& q" M2 G0 a9 l  U结果是:10
1 ?$ C8 l" s6 f- J5 r% p3 J! n+ n) Y) F& i2 h' Q0 [

. d* N; R. \3 Y; B

4 c  I# s* F3 q0 j  M8 t4 `, _) z, f6 v9 N- b; a9 S
[ 本帖最后由 charon 于 2008-11-16 23:02 编辑 ]
回复

使用道具 举报

发表于 2008-11-14 14:23:21 | 显示全部楼层
。。。我数学分数一直徘徊在30分左右。。。
9 n6 l6 W9 z" m不用编程,直接列个数学方程式出来算不算。。
回复

使用道具 举报

发表于 2008-11-14 15:51:47 | 显示全部楼层
提示:不要从算法下手,应该从倍数方面着手
; ~* l+ j, C; l& H, B答案是:10
回复

使用道具 举报

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

使用道具 举报

发表于 2008-11-16 23:04:47 | 显示全部楼层
汗,怎么一下子就被采纳了。
- Q$ |. Z9 w- p3 f
, L) S2 [8 Z/ a$ B+ L上面代码因HTML的关系好像有些被弄没了
. U2 B1 i; `0 L5 u5 V; l, _+ e0 [; v% S7 \% A$ a
  1. public class PeopleAndLight {; y/ _$ y; `) t1 m1 b( O

  2. : L+ X' y2 g% H( s( F+ _
  3.         public static void main(String[] args) {3 }' ^. p# {2 [6 r( C
  4.                 int[] People = new int[100];1 F# E- |/ X. [. Z9 [
  5.                 boolean[] Way = new boolean[100];3 N$ T  z% l+ g  F

  6. ) [- W& i. l* Z$ M7 o7 J" z, Q
  7.                 for (int i = 0; i < 100; i++) {
      m: r& }! }4 \( u
  8.                         People[i] = i + 1; // 设置人的编号; V$ B* [% X3 v
  9.                         Way[i] = false;
    9 I# T6 p  Q/ d- Z
  10.                 }
    " h$ T$ \$ l: m* B4 t0 K+ o
  11. : c* k% G8 O. [2 h- W
  12.                 for (int i=0; i<People.length; i++) {! v, ~6 y* \! O4 I$ x) z
  13.                         int pno = i + 1; // 当前某人的编号3 t2 x/ [: `+ D, q& O* b1 F9 K2 w
  14.                         for (int j=0; j<Way.length; j++) {
    5 A1 o# C  m! H/ t! ?4 D
  15.                                 int lno = j + 1; //当前灯的编号
    / K) g# D+ q' F7 v9 B
  16.                                 if (lno % pno == 0)
    - c9 U' z: S' P" o0 }& G
  17.                                         Way[j] = !Way[j];$ ~1 ~; x/ S  `. m- v. X3 {
  18.                         }
    . v" q3 d5 l  p# q4 ?( H9 K
  19.                 }3 i/ E! c; L$ y( N. d: o
  20.                 . S( f; o* y" N8 I; C: _5 J3 j: i
  21.                 int count = 0;7 V: `) d9 S# ^5 ^4 [1 ~3 v% m; Q/ o8 X
  22.                 for (int i=0; i<Way.length; i++) {- F' b2 c( o) I" B  S
  23.                         if (Way[i] == true)
    2 t! M7 K" [  k+ \( P9 G
  24.                                 count ++;( O- j# d- E% h/ R4 V/ b& s! M$ J
  25.                 }
    * {! L* U! V1 l' H# x9 V
  26.                
    8 c8 z$ K9 `' q% c
  27.                 System.out.println(count);  r% o$ A; {+ S: }/ o
  28.         }7 Z1 y1 \6 D1 M9 s; Q% ^8 M
  29. }* z) T; ]* y3 i* U* h+ h& ~, w- [& j5 e
复制代码
) ~8 k' b2 @% Y7 D) p2 r9 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-5 07:40 , Processed in 0.057229 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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