sum = 0
array = []
for num in 1...1000
if num % 3 === 0
sum = sum + num
array.push(num)
end
if num % 5 === 0
sum = sum + num
array.push(num)
end
end
#puts array
puts sum
当我使用10
作为范围运行程序时,我得到了正确的输入,但是当我使用1000
时,我的答案是266333
,而正确答案是{{ 1}}根据答案作弊。你能告诉我我做错了吗?
答案 0 :(得分:2)
您需要elsif
而不是两个if
语句。目前你有一些可被3和5整除的数字,它们被加到总和中两次。
for num in 1...1000
if num % 3 === 0
sum = sum + num
array.push(num)
elsif num % 5 === 0
sum = sum + num
array.push(num)
end
end
或更好的方式:
for num in 1...1000
if num % 3 == 0 || num % 5 == 0
sum = sum + num
array.push(num)
end
end