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”。
答案 0 :(得分:0)
在for
循环中。首先,您check_even(1,1)
返回1
,因此a
是1
,因此循环继续进行,check_even(0,0)
并返回0
和{{1 }}现在是a
,因此它显示0
。实际上,您应该设置YES
。