题解 | #牛牛的计划#

牛牛的计划

http://www.nowcoder.com/practice/cf956ceef9f84f7393a0b7284fdbf95a

投机取巧使我快乐~

int main()
{
    int y = 0, m = 0, d = 0; //输入
    int y1 = 0, m1 = 0, d1 = 0;  //真正的开学时间
    scanf("%d %d %d", &y, &m, &d);
    scanf("%d %d %d", &y1, &m1, &d1);
    int input = 1000 * y + m * 100 + d;
    int schoolBegin = 1000 * y1 + m1 * 100 + d1;
    int ret = schoolBegin - input;
    if(ret < 0)
    {
        printf("no");
    }
    else
    {
        printf("yes");
    }
    return 0;
}
全部评论
有bug y前面乘的数字不够大 2001 1 1 2000 12 1 数据套一下就知道了
1 回复 分享
发布于 2022-12-01 14:52 湖南
不太对吧,一些特定日期下,比如: 学习日期:1001 1 1 询问日期:1000 12 30 按理来说后者小于前者,应该输出“no” 但实际输出的是“yes”
1 回复 分享
发布于 2023-07-01 23:13 天津
感觉不严谨,基准是公元0年,用预定的总天数减去提到的总天数比较大小,个人认为还是要把数据清楚的算出来而不是用较大数较小数来拉差距,会存在BUG
点赞 回复 分享
发布于 02-03 10:41 浙江
y和y1都乘以10000就行了。(把月和日均看成两位数)
点赞 回复 分享
发布于 03-10 21:47 河南
int main() { int year = 0; int month = 0; int day = 0; int year1 = 0; int day1 = 0; int month1 = 0; scanf("%d %d %d", &year, &month, &day); scanf("%d %d %d", &year1, &month1, &day1); if (year1 > year) { printf("yes"); } if (year1 == year) { if (month1 > month) { printf("yes"); } else if (month1 == month) { if (day1 >= day) printf("yes"); else { printf("no"); } } } if (year1 < year) printf("no"); return 0; }直接笨方法
点赞 回复 分享
发布于 03-21 22:21 河北

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
28 1 评论
分享
牛客网
牛客企业服务