| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 844 人关注过本帖
标题:[讨论]那位大虾给我说一下呀~~
只看楼主 加入收藏
tuyu2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-11-29
收藏
 问题点数:0 回复次数:12 
[讨论]那位大虾给我说一下呀~~

17人围成一圈,编号是1,2........................到17,从第一个开始报数一至到3的倍数的人走开,一直下去,直到最后一人,求这人的编号 ?

我做的是这样的

private sub command1_click()

dim i%,j%,m%,a(17)

for j=1 to 17

for i = 1 to 17

if a(i)<>0 then a(i) = 0

if m mod 3 = 0 then m = m+1

nexti

next j

for i = 1 to 17

if a(i)<>0 then print a(i)

efdif

next i

end sub

搜索更多相关主题的帖子: next private 
2004-11-29 14:04
tuyu2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-11-29
收藏
得分:0 
快回话呀
2004-11-29 18:36
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

Private Sub Command1_Click() Dim i As Integer, num As Integer, m As Integer, a(1 To 17) As Integer For i = 1 To 17'初始化为1表示没有出局,为0表示出局 a(i) = 1 Next i num = 17'刚开始有17个人 m = 0'用来记录是否要出局,为3出局 While num <> 1'当只剩下一个人时退出循环 For i = 1 To 17'开始报数 If a(i) = 1 Then m = m + 1 If m Mod 3 = 0 Then'如果是3的倍数出局 m = 0 num = num - 1 a(i) = 0 If num = 1 Then'如果只剩下一个人那么结束for循环 Exit For End If End If End If Next i Wend For i = i + 1 To 17 If a(i) = 1 Then Print i End If Next i End Sub

[此贴子已经被作者于2004-12-01 23:24:26编辑过]


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-12-01 10:41
tuyu2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-11-29
收藏
得分:0 
老大可不可以说一下意思呀/?
2004-12-01 19:24
tuyu2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-11-29
收藏
得分:0 

For i = 1 To 17 a(i) = 1 Next i 中的 a(i) = i 吧不是不呀????不是a(i) = 1吧?要回话 这是我们的作业

2004-12-01 19:46
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 
具体的轻看程序中的注释!!如果不懂联系我qq

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-12-01 23:25
飞舞的精灵
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-11-27
收藏
得分:0 
。。。看不太懂,我还刚学

2004-12-04 13:48
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

对不起你哪里不懂!!

我来再添加一点注释


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-12-04 14:09
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

我讲一讲思路!首先用一个数组来记录该人是否出局,当为0时出局,为1是还在。m来记录当前的还没有出列的人应该要报的数字。用一个num来记录剩余没有出列的人数。显然刚开始为最大的人数,既没有一个人出列。用一个for循环来模拟报数,如果a(i)为1那么它就应该报数,每报一个数那么m加一当m为3的倍数时即这个人应该出列,那么a(i)=0 表示她出列了!然后m=0来清空计数,同时num要减1,因为又少了一个人。最后检验是否只剩下了一个人。如果是的那么退出循环然后循找那个人来打印出来!


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-12-05 08:48
tuyu2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2004-11-29
收藏
得分:0 
呵呵谢你呀~~你的QQ是多少呀我好问你问题呵呵 说一下好吗?谢谢
2004-12-06 12:36
快速回复:[讨论]那位大虾给我说一下呀~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023029 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved