题解 | #判断季节#
判断季节
http://www.nowcoder.com/practice/741a9b79fabe474cb153a49b4bff5828
题目的主要信息:
- 根据输入的月份,判断属于哪一个季节
- 3 - 5 月为春季、6 - 8 月为夏季、9 - 11 月为秋季、12,1,2 月为冬季
- 如果输入的月份不是 1 - 12,则输出“不合法”
具体做法:
我们优先判断输入的月份是否在1 - 12的范围内,如果不在直接判断不合法,否则就要判断属于哪个季节。
避免麻烦的if-else,我们还是使用switch,而且因为值都是连续的,我们可以用case的连续写法:
在case中,可以用x ... y 表示范围在[x,y]的值,两边都是闭区间
比如我们代码中就用 case 3 ... 5:
代替了 case 3: case 4: case 5:
,最后的冬季不连续,我们用default代替,因为在已经判断了在1 - 12范围内的情况,除去以上三种就只剩冬季了。
#include <iostream>
using namespace std;
int main() {
int month;
cin >> month;
if(month < 1 || month > 12) //优先判断是否合法月份
cout << "不合法" << endl;
else{
switch(month){ //根据月份判断
case 3 ... 5: //连续的值
cout << "春季" << endl; break;
case 6 ... 8:
cout << "夏季" << endl; break;
case 9 ... 11:
cout << "秋季" << endl; break;
default:
cout << "冬季" << endl;
}
}
return 0;
}
复杂度分析:
- 时间复杂度:,直接判断,常数时间
- 空间复杂度:,无额外空间
孤帆远影碧空尽 文章被收录于专栏
牛客网各类题单题解~