70,037
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
int judge(int a,int b,int m);
int main ()
{
int n,m;
int i,j;
int a,b;
int w;
while(scanf("%d%d",&n,&m)!=EOF&&(m||n))
{
w=0;
if(m>0)
{
if(n%2==0)
{
for(i=0,j=n;i<=n/2;i++,j--)
if(judge(i,j,m))
{
w++;break;
}
if(w==0)printf("No\n");
else printf("Yes\n");
}
else
{
for(i=0,j=n;i<=(n-1)/2;i++,j--)
if(judge(i,j,m))
{
w++;break;
}
if(w==0)printf("No\n");
else printf("Yes\n");
}
}
else
{
if(n%2==0)
{
for(i=0,j=n;i<=n/2;i--,j++)
if(judge(i,j,m))
{
w++;break;
}
if(w==0)printf("No\n");
else printf("Yes\n");
}
else
{
for(i=0,j=n;i<=(n-1)/2;i--,j++)
if(judge(i,j,m))
{
w++;break;
}
if(w==0)printf("No\n");
else printf("Yes\n");
}
}
}
return 0;
}
这是网上的答案:
[code=c]#include <stdio.h>
int main(void)
{
int n, m, i, c;
while(scanf("%d%d", &n, &m) && n || m)
{
c = 0;
for(i = -9999; i < 10000; i ++)
{
if(i*(n-i) == m)
{
c = 1;
}
}
if(c)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}