- 论坛徽章:
- 0
|
ruby完成一道百度的测试题目
.题目:
第一题:连续正整数
题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
Ruby代码- 1.puts "Input the integer:"
- 2.number = gets
- 3.
- 4.int_number = Integer(number)
- 5.
- 6.hasResult = false;
- 7.(1..int_number/2).each do |number_low|
- 8. ((number_low+1)..int_number).each do |number_high|
- 9. #The equation is (a+b)*(b-a+1)/2 数列求和公式
- 10. result = (number_low+number_high) * (number_high-number_low+1) / 2
- 11. if(result == int_number)
- 12. puts (number_low..number_high).to_a.inspect
- 13. hasResult = true;
- 14. break;
- 15. elsif(result > int_number)
- 16. break
- 17. end
- 18. end
- 19.end
- 20.
- 21.if(!hasResult)
- 22. puts "NONE"
- 23.end
复制代码 |
|