Ruby程序:在数字阶乘的n次幂中尾随零 我试图将C++代码移植到Ruby。 运行脚本会出现“执行超时”错误
这是Ruby代码:Ruby程序:在数字阶乘的n次幂中尾随零 我试图将C++代码移植到Ruby。 运行脚本会出现“执行超时”错误,c++,ruby,C++,Ruby,这是Ruby代码: t = gets.to_i t.times do a = gets.to_i b = gets.to_i c = 0 j = 5 until j <= a do j*5 c += a/j end puts c*b end 我的任何输出都是: 240 4 有两个测试用例: (100!)^10 (5!)^4 我会用Ruby编写如下计算: a = 100 b = 10 ((1..a).inj
t = gets.to_i
t.times do
a = gets.to_i
b = gets.to_i
c = 0
j = 5
until j <= a do
j*5
c += a/j
end
puts c*b
end
我的任何输出都是:
240
4
有两个测试用例:
(100!)^10
(5!)^4
我会用Ruby编写如下计算:
a = 100
b = 10
((1..a).inject(:*)**b).to_s[/0*$/].size
#=> 240
其中
(1..a).inject(:*)
计算a
,**b
是指数函数,to_s
将数字转换为字符串,[/0*$/]
提取所有尾随的零,并大小
计算它们……您需要陈述一个问题。此外,具有预期输出的示例也会有所帮助。感谢注意缩进问题和你的循环是彼此内部的红宝石计划相比,C++一。您的程序在输入11020时运行良好。但是其他的问题,这是一个折腾。请更多地注意空白和您如何格式化代码,您的代码很难阅读。为什么您要标记您的问题RubyonRails
(再次)?它与rails无关。我同意(5!^4)
有4
尾随零,但(100!)^10
没有24
,它有。还是我错过了什么?
240
4
a = 100
b = 10
((1..a).inject(:*)**b).to_s[/0*$/].size
#=> 240