在codewars上,我正在使用JavaScript进行“世纪以来的世纪”问题。我确信我的解决方案不是最有效甚至不是最有效的解决方案,但我确实认为它应该可行。在我解开解决方案之前,我想弄清楚为什么这种长期的方法无法奏效。我一直在改变它,但无法弄清楚为什么每个世纪都只返回1。
输出应为:
centuryFromYear(1705)返回(18) CenturyFromYear(1900)返回(19) CenturyFromYear(1601)返回(17) CenturyFromYear(2000)返回(20)
我的输出是:
1705年的测试-预期:18,而不是:1 1900年的测试-预期:19,而不是:1 1601年的测试-预期:17,而不是:1 2000年的测试-预期:20,而不是:1 通过测试:值== 1
这是我的代码:
function century(year) {
if (year >= 1 || year <= 101) {
return 1
} else if (year >= 101 && year < 201) {
return 2
} else if (year >= 201 && year < 301) {
return 3
} else if (year >= 301 && year < 401) {
return 4
} else if (year >= 401 && year < 501) {
return 5
} else if (year >= 501 && year < 601) {
return 6
} else if (year >= 601 && year < 701) {
return 7
} else if (year >= 701 && year < 801) {
return 8
} else if (year >= 801 && year < 901) {
return 9
} else if (year >= 901 && year < 1001) {
return 10
} else if (year >= 1001 && year < 1101) {
return 11
} else if (year >= 1101 && year < 1201) {
return 12
} else if (year >= 1201 && year < 1301) {
return 13
} else if (year >= 1301 && year < 1401) {
return 14
} else if (year >= 1401 && year < 1501) {
return 15
} else if (year >= 1501 && year < 1601) {
return 16
} else if (year >= 1601 && year < 1701) {
return 17
} else if (year >= 1701 && year < 1801) {
return 18
} else if (year >= 1801 && year < 1901) {
return 19
} else if (year >= 1901 && year < 2001) {
return 20
}
};
答案 0 :(得分:1)
if (year >= 1 || year <= 101)
如果年份大于或等于1,则返回1。