我试图回答Chris Pine的"学习编程"一书中的以下问题:
闰年.编写一个程序,要求开始年份和结束年份,然后将所有闰年放在它们之间(如果它们也是闰年,则包括它们).闰年是可被4整除的年份(如1984年和2004年).然而,被100整除的年份不是闰年(例如1800和1900),除非它们也可被400整除(例如1600和2000,实际上是闰年).真是一团糟!
运行代码时出现以下错误:
leap_year.rb:12:in +': no implicit conversion of Fixnum into String (TypeError)
from leap_year.rb:12:in'
这是我的代码:
#leap years
puts 'What is the starting year?'
starting_year = gets.chomp
puts 'What is the ending year?'
ending_year = gets.chomp
while starting_year <= ending_year
if starting_year%4 == 0 && (starting_year%100 != 0 && starting_year%400 == 0)
puts starting_year
end
starting_year+=1
end
Run Code Online (Sandbox Code Playgroud)
这是因为输入来自gets.chompa String.你不能在a %上执行modulo()String.您需要先将其转换为整数.
试试这个...
puts 'What is the starting year?'
starting_year = gets.chomp.to_i
puts 'What is the ending year?'
ending_year = gets.chomp.to_i
while starting_year <= ending_year
if starting_year%4 == 0 && (starting_year%100 != 0 && starting_year%400 == 0)
puts starting_year
end
starting_year+=1
end
Run Code Online (Sandbox Code Playgroud)
那现在有效吗?
| 归档时间: |
|
| 查看次数: |
46530 次 |
| 最近记录: |