采用Ruby 实现丢手帕问题
来源:互联网 发布:手机家具设计软件 编辑:程序博客网 时间:2024/04/20 11:54
#题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
#凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#实现思想:将数组中的所有元素都定义为1,从第一个开始累加求sum,设计一个下标i,
#如果sum=3,则将进3的元素定为0,sum=0,继续求和,直到最后一个元素
#判断如果是最后一个元素,转移index到0,又重新开始
def lose_shoupa(n)
arr = Array.new(n){|e|e=1} #定义一个长度为n的全部元素都是1的数组
count = n
sum = 0
i,j =0,0
while count >1 #count控制循环次数,当它为1的时候,就是最后一个元素了
if arr[i] == 1
sum = sum + arr[i]
#p "sum=#{sum}"
end
if sum == 3
sum = 0
arr[i] = 0
count = count - 1
#p "i=#{i},a[i]=#{arr[i]},sum=#{sum}"
end
i +=1
if i == n #这一行是关键,实现下标的转移,又从第一个开始
i = 0
end
end
p arr
for j in (0..n)
if arr[j] == 1
p "the last number is: #{j+1}"
end
end
end
- 采用Ruby 实现丢手帕问题
- 丢手帕问题 java实现
- 丢手帕问题 (java实现)
- 丢手帕问题java 实现
- 丢手帕问题java实现
- 约瑟夫问题(丢手帕)的实现
- JAVA 实现 丢手帕(约瑟夫)问题
- 丢手帕问题
- 丢手帕问题
- 丢手帕问题
- 【蓝桥杯】【丢手帕问题】
- 丢手帕问题 (约瑟夫问题)Java实现
- 丢手帕问题,约瑟夫问题(集合实现)
- 约瑟夫问题(丢手帕问题)的数组实现
- 用PHP实现丢手帕问题(约瑟夫问题)
- 丢手帕问题的双向环形链表实现
- 循环单链表的实现,解决约瑟夫丢手帕问题
- Java约瑟夫问题(丢手帕)的双向循环实现
- 淘宝服务市场 淘宝订单同步方案 - 丢单终结者
- JTable 表格设置某一单元格的颜色
- Android获取指定某年某月某日相对应星期,某年某月有几天
- Linux 6 Transparent Huge Pages and Hadoop Workloads
- 参数 指针
- 采用Ruby 实现丢手帕问题
- Yii --Command 任务处理
- a function to find the filename without extension
- dos批量替换当前目录后缀名
- windows核心编程(笔记二)
- 黑苹果安装
- java移位运算符 《》
- 打印 GCC编译动态和静态链接库
- 哈夫曼编码的C语言实现