大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>Pascal练习>>筛法的应用         本站全文搜索: 友情提示:

筛法的应用
http://www.mydrs.org  10/6/2001  大榕树


例:

传说中有一个残暴的国王,喜欢杀戮百姓。有一次,他抓到30个百姓并要一一杀掉。在这30个百姓中间有一个聪明人,他站出来对国王说:“请国王大发慈悲,赦免二人不死。”国王问:“赦免哪二人不死?”那个聪明人回答说:“我们30个人围成一圈,从1开始报数,凡数到5的人就拉出去杀掉。剩下的人继续从1开始报数,循环反复,直到剩下两个人为止,这两个人被赦免。”

国王一听很有意思,采纳了聪明人的建议,赦免了两个人,而那个聪明人就是其中之一。请你设计一个程序,由计算机判断聪明人要站在什么位置,才能躲过这一场屠杀。

 

问题分析:

首先,设百姓的人数为M人,设数到N的人被杀掉。

用数组A(M)存放M个人是否还在圈中的信息。其中,

A(I)=1 表示第I个人还在圈中。

A(I)=0 表示第I个人已被杀掉。

开始时,数组A中所有的元素都是1,表示每个人都站在圈中。

用K=K+A(I)来实现报数功能,因为只有还在圈中的人才能使K的值增加。

用变量D来记录出圈的人数,当D=M时,表示所有的人都出圈了。最后出圈的两个人就是被赦免的人。

 

程序清单:

CLS

INPUT "m="; m: INPUT "n="; n

DIM a(m)

FOR i = 1 TO m: a(i) = 1: NEXT i

d = 0: k = 0

DO

FOR i = 1 TO m

k = k + a(i): IF k <> n THEN GOTO 1

PRINT USING "####"; i; : p = p + 1: IF p > 5 THEN p = 0: PRINT

a(i) = 0: k = 0: d = d + 1

IF d = m THEN END

1 NEXT i

LOOP

 

例二:

请你设计一个程序,让计算机找出40个自然数来,使得其中任意两个数之差均不相等。

问题分析:

首先,开辟一个数组S(I),准备存放这40个数,再开辟一个数组CHA(I),用来存放两个数的差。

寻找某一个满足条件的自然数的过程如下:

把1和2放进数组S中;
把1放进数组CHA中;
当寻找下一个自然数时,要把这个自然数与数组S中的每一个数相减,再判断所得的差是否在数组CHA中;
如果所得的差不在数组CHA中,说明又找到一个满足条件的自然数。把这个自然数放进数组S中,同时把这个自然数与数组S中原有的每一个自然数的差记录在数组S中去。
如果所得的差与数组CHA中的某一个数重复,说明这个自然数不符合条件,继续寻找下一个自然数。
重复步骤(3),直到找到40个自然数为止。
程序清单:

CLS

INPUT "n="; n

DIM s(n), cha(3000)

s(1) = 1: s(2) = 2

cha(1) = 1: s = 2: y = 2: PRINT 1, 2,

1 : y = y + 1

FOR k = 1 TO s

PRINT k, y, s(k), cha(y - s(k))

IF cha(y - s(k)) = 1 THEN GOTO 1

NEXT k

s = s + 1: s(s) = y

FOR k = 1 TO s - 1

cha(y - s(k)) = 1

PRINT y - s(k), cha(y - s(k))

NEXT k

PRINT y, : IF s < n THEN GOTO 1

END

来 源:网络之家
共有4681位读者阅读过此文

  • 上篇文章埃及分数之和
  • 下篇文章国际信息学奥赛简介

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8307]
    2. 七类高中生具有保送资格 [5911]
    3. NOI2006获奖选手名单 [4956]
    4. 关于举办NOIP2006模拟赛的通告 [4107]
    5. Turbo Pascal各语句运行速... [3595]
    6. Turbo王者归来新Delphi免费... [3182]
    7. IOI2006我国4名选手全部获得金... [2946]
    8. 关于APIO2007与IOI2007... [2764]
    9. noip倒计时 by 枯叶蝴蝶 [2684]
    10. 朱泽园:思想上的金牌更重要 [2169]
    筛法的应用
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号