VFP趣味编程:小白兔智斗狐狸
来源:互联网 发布:通过阿里云搭建虚拟机 编辑:程序博客网 时间:2024/06/10 21:26
小白兔智斗狐狸。山上有十个洞,每洞之间相距较远,有一只狐狸和一只白兔,住在各自洞里。狡猾的狐狸总想捕捉吃掉白兔。一天二者远远相望,白兔对狐狸说:“把十个洞依次编成1至10号,我藏在其中一个洞里,你从你自己住的第10号洞出发,第一次走一个间隔,进洞找我,第二次走两个间隔找我,第三次走三个间隔找我,依次类推,次数不限。你若能找到我,你就可以饱餐一顿。”狐狸心想,不限次数,它总可以找到这只白兔。如果,从早晨一直找到晚上,也没有寻找到白兔。请算一算白兔可能藏在哪几洞里?
SET TALK OFF
CLEA
DIME m(10)
INPUT "请输入狐狸寻找的次数:" TO N
FOR i=1 TO 10
m(i)=0
ENDFOR
k=0
i=1
DO WHILE i<=N
k=k+i
l=k-INT(k/10)*10
IF l=0
m(10)=m(10)+1
i=i+1
LOOP
ENDIF
m(l)=m(l)+1
i=i+1
ENDDO
FOR i=1 TO 10
? "狐狸进入第"+STR(i,2)+ ;
"个洞的次数为"+STR(m(i))
ENDFOR
?
? "狐狸没有进入过的洞是:"
FOR i=1 TO 10
IF m(i)=0
?? STR(i,3)
ENDIF
ENDFOR
RETU
算法分析: 狐狸从第10号洞出发,第一次到1号洞,第二次到3号洞,第三次到6号洞,第四次到10号洞...这是一个有关余数的问题。我们设狐狸寻找的次数为n,则这n次中所走过的间隔数就是s=1+2+3+..+N=N(N-1)/2,因为走完10个间隔就转了一圈,所以寻找第n次时进入了哪个洞,就相当于求s除以10所得的余数。我们不妨把10个洞编上0,1,2,3..9这十个号码,狐狸的第10号洞就用0号表示。源程序ex12_1.prg如下:
SET TALK OFF
CLEA
DIME m(10)
INPUT "请输入狐狸寻找的次数:" TO N
FOR i=1 TO 10
m(i)=0
ENDFOR
k=0
i=1
DO WHILE i<=N
k=k+i
l=k-INT(k/10)*10
IF l=0
m(10)=m(10)+1
i=i+1
LOOP
ENDIF
m(l)=m(l)+1
i=i+1
ENDDO
FOR i=1 TO 10
? "狐狸进入第"+STR(i,2)+ ;
"个洞的次数为"+STR(m(i))
ENDFOR
?
? "狐狸没有进入过的洞是:"
FOR i=1 TO 10
IF m(i)=0
?? STR(i,3)
ENDIF
ENDFOR
RETU
- VFP趣味编程:小白兔智斗狐狸
- VFP趣味编程:百钱买百鸡
- VFP趣味编程:盲人裁判的判断
- VFP趣味编程:猜数之谜
- VFP趣味编程:求婚者的智慧
- VFP趣味编程:鸡兔同笼
- 小白兔
- 小白兔
- 小白兔
- 小白兔
- 小白兔
- VFP趣味编程:把45拆成四个数之和
- VFP趣味编程:素数(质数)的求法
- YTU 2598: 编程题B-小平智斗自动售货机
- 我们都是小白兔
- 小白兔笑话大全
- 小白兔系列笑话
- 小白兔的笑话
- VFP趣味编程:把45拆成四个数之和
- 基于单片机通用引脚的软件UART设计
- VFP趣味编程:素数(质数)的求法
- VFP趣味编程:猜数之谜
- VFP趣味编程:求婚者的智慧
- VFP趣味编程:小白兔智斗狐狸
- 一个人做两件事和两个人做一件事
- ArcSDE空间数据库中SDE用户使用
- VFP趣味编程:鸡兔同笼
- ASP.NET(C#)常用代码30例
- SOA相关链接
- java google spring
- 在asp.net服务器控件中响应客户端与服务器端事件的例子
- 去不了云南,改去重庆了