ruby完成一道百度的测试题目_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > ruby完成一道百度的测试题目

ruby完成一道百度的测试题目

 2011/11/7 8:02:55  bitlanghen  http://bitlanghen.iteye.com  我要评论(0)
  • 摘要:题目:第一题:连续正整数题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:15=1+2+3+4+515=4+5+615=7+8请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。输入数据:一个正整数,以命令行参数的形式提供给程序。puts"Inputtheinteger:"number=getsint_number=Integer(number)hasResult=false;(1..int_number/2).eachdo
  • 标签:Ruby 测试 百度
题目:
第一题:连续正整数

题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:

15=1+2+3+4+5
15=4+5+6
15=7+8

请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。

输入数据:一个正整数,以命令行参数的形式提供给程序。
puts "Input the integer:"
number = gets

int_number = Integer(number)

hasResult = false;
(1..int_number/2).each  do |number_low|
  ((number_low+1)..int_number).each do |number_high|
    #The equation is (a+b)*(b-a+1)/2 数列求和公式
    result = (number_low+number_high) * (number_high-number_low+1) / 2
    if(result == int_number)
      puts (number_low..number_high).to_a.inspect
      hasResult = true;
      break;
    elsif(result > int_number)
      break
    end
  end
end

if(!hasResult)
  puts "NONE"
end
上一篇: 经典的数3退1问题 下一篇: ROR31 体验
发表评论
用户名: 匿名