2008-04-08 Ruby 测试题(00010)

fsadf
我觉得我的方法挺简单的,大家帮着看看哈~!
=begin
 2的15次方是32768,每个数字之和是:3+2+7+6+8 = 26
 那么,2的1000次方每个数字之和是多少呢?
=end
def multiSum(n)
  product = 1; sum = 0
  n.times { product *= 2 }
  string = product.to_s
  for i in 0 ... (string.length)
  sum += (string.to_i - 48)
  end
  return sum
end
puts multiSum(15), multiSum(1000)
原来有更简单的方法,学习学习!!哈哈!!
本帖隐藏的内容需要回复才可以浏览
楼上各位有没有好的模版参考下?
学习一下~~
def sum2(i)
  sum_a = 2**i
  puts sum_a
  sum = 0
  yushu = 0
  zhengshu = sum_a
  while zhengshu > 0
   yushu = zhengshu % 10
   zhengshu = (zhengshu - yushu) / 10
   sum += yushu
  end
 return sum
end

mysum = sum2(15)
puts mysum
puts "\n"
mysum = sum2(1000)
puts mysum
看看内容
我不行了
学习