描述 
 Topcoder 招进来了 n 个新同学,Yougth计划把这个n个同学分成两组,要求每组中每个人必须跟另一组中每个同学进行一次算法对决,问存不存在一种分组方式在k场完成对决。(两组中每一组中人数都要大于0) 
 //注意:这里给的是在k场完成对决而不是k场之内完成对决; 
 输入 
 有多组测试数据,每组测试数据两个数 n 和 k ,n和k都为0时表示输入结束。(0< n<10000,0< k<1000000) 
 输出 
 输出一行,如果可以,输出YES,不行的话输出NO。 
 样例输入 
 4 1 
 4 3 
 4 4 
 2 1 
 3 3 
 0 0 
 样例输出 
 NO 
 YES 
 YES 
 YES 
 NO 
 提示 
 4个人分成两组,1和3则需对决3场,2和2则需对决4场。
代码如下
#include< stdio.h> 
 int main() 
 { 
 int n,k,i,a=0; 
 while(scanf(“%d %d”,&n,&k)!=EOF) 
 { 
 a=0;//每次循环将a进行重置; 
 if(n==0&&k==0)//首先,依题意,n跟k同时为0,结束输出; 
 { 
 break; 
 } 
 for(i=1; i< n; i++) 
 { 
 if(i*(n-i)==k)//这里将i*(n-i)与k进行比较; 
 { 
 a=1;//即,倒着比较,如果有一个相等,即令a=1; 
 break; 
 } 
 } 
 if(a)//这里if里面判断,如果a不为0,就执行; 
 printf(“YES\n”); 
 else//如果a为0,输出NO即可; 
 printf(“NO\n”); 
 } 
 return 0; 
 }