需要帮助弄清楚为什么我的测试用例之一没有通过

时间:2019-07-29 14:31:14

标签: c math

https://codeforces.com/contest/4/problem/A

这是问题的摘要。

我最初从检查输入数字是否相等的函数开始,然后使用for循环,该循环从1滚动到给定数字。

我使用了另一个变量来存储补码(即8 = 1 + 7,2 + 6,3 + 5等)

#include<stdio.h>
#include<stdlib.h>

int check_even(int,int);
int main()
{
    int n,i,m;
    int a;
    scanf("%d", &n);
    if(n<=100&&n>0)//checking the weight conditions for the watermelon
    {
        for(i=1;i<=n;i++)
        {
            m=n-i;
            a=check_even(m,i);//checking whether both no are even
            if (a==0)
                break;
            else
                continue;
        }
        if(a==0)
            printf("YES");
        else if(a==1)
            printf("NO");
    }
    return 0;
}
int check_even(int m,int i)
    {
        if(m%2==0 && i%2==0)//checking for even no.
            return 0;
        else
            return 1;
    }

我被卡住的情况是n = 2 2 = 1 + 1,两者都是奇数,因此输出应为“ NO”,但我反复保持“ YES”。

1 个答案:

答案 0 :(得分:0)

for循环中。首先,您check_even(1,1)返回1,因此a1,因此循环继续进行,check_even(0,0)并返回0和{{1 }}现在是a,因此它显示0。实际上,您应该设置YES