您的位置:首页 > 其它

HDU 1999 不可摸数 (一道令我疑惑的题目)

2010-09-18 10:58 232 查看
这道题是一道简单题!就是确定一个范围在里面依次去这个数的因子的和看是否等于n,一般这个范围可以取到2*n或者是3*n都可以!

但是我有一个疑惑就是对于每一个n需要独立判断是否是不可摸数,因此每次需要将标记重新赋值为0,但是我把res=0放在while循环内就wa!放在while循环外就ac了!真是个奇怪的事情!有哪个聪明的大牛看了我的解题报告后给我留个言解释一下!小的在这里谢过了!

#include<iostream>
using namespace std;
int test(int k)
{
int sum=0,i;
for(i=1;i<k;i++)
{
if(k%i==0)
sum+=i;
}
return sum;
}
int main()
{
int ca,i,res=0,n;
scanf("%d",&ca);
while(ca--)
{
//              res=0;在这里赋值为零就挂!不理解!应该对每个例子独立判断啊,怎么会挂呢?
scanf("%d",&n);
i=2;
while(i<=3*n)
{
if(test(i)==n)
{
res=1;
break;
}
i++;
}
if(res==0)
printf("yes/n");
else
printf("no/n");
}
return 0;
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: