球球dalao..............

B3921 [GESP202312 一级] 小杨的考试

zzx005 @ 2024-11-30 09:59:27

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b;
    if(b>=7)
    {
        c=a+b;
        cout<<c%7;
    }
    else
    {
        cout<<a+b;
    }
    return 0;
}

by NoPartyForCaoDong @ 2024-11-30 10:07:04

@zzx005 这题直接判断(a+b)%7就行了,是0就输出7,不是0输出(a+b)%7


by Arefa @ 2024-11-30 10:16:24

  1. b<7 时,a+b 也有可能会大于 7,因此 b 是否大于 7 并不是一个判断 a+b 是否需要取余的条件。
  2. 在取余之后,可能会出现结果等于 0 的情况。例如 a=7,b=7(a+b)\%7=0,但正确的输出应该是 7。因此需要判断取余后等于 0 的情况,此时输出 7

修改后的代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b;
    c=(a+b)%7;
    if(c==0)
    {
        cout<<7;
    }
    else
    {
        cout<<c;
    }
    return 0;
}

by chenhaozhe123 @ 2024-11-30 10:19:39

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b;
    c=(a+b)%7;
    if(c==0)
    {
        cout<<7;
    }
    else
    {
        cout<<c;
    }
    return 0;
}

@zzx005


by zzx005 @ 2024-11-30 10:20:43

@NoPartyForCaoDong 谢大佬过了!


|