题解 | #判断季节#

判断季节

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范围内的情况,除去以上三种就只剩冬季了。

alt

#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;
}

复杂度分析:

  • 时间复杂度:O(1)O(1),直接判断,常数时间
  • 空间复杂度:O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论
这个是GNU GCC对语言的扩展,不是标准要求的,了解即可
1 回复 分享
发布于 2023-02-11 01:12 河南
为什么在VS里面3 ... 5不符合语法呢?
1 回复 分享
发布于 2021-12-14 20:05
有无懂哥说一下3 ... 5这种写法是哪个标准开始有的?之前没这样用过长见识了
点赞 回复 分享
发布于 2022-12-01 15:12 江苏

相关推荐

07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
07-17 11:50
门头沟学院 Java
投递腾讯等公司10个岗位
点赞 评论 收藏
分享
评论
33
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务