码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1999 不可摸数 (水题)

时间:2014-09-04 19:05:10      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:style   blog   os   io   for   2014   问题   sp   log   

【题意简述】:中文题

【分析】:想法很简单,因为n的范围仅仅是  2<= n<=1000,所以根据题目描述,我只需要打出一个表即可解决问题,表里存放每一个S(i)的值,如果输入的n能与表中的值相对应,就不是不可摸数,相反便是不可摸数!

不过要注意这里边表的那个上线,我们可以试出来,最后我测试出的结果是5000左右。


#include<iostream>
using namespace std;

int a[5000]={0};

int main()
{
    int n,i,j,m,flag=0;
    a[0]=1;a[1]=1;
    for(i=2;i<5000;i++)
    {
    	a[i]=0;
     	for(j=1;j<=i/2;j++)
      	if(i%j==0)
       	a[i]+=j;
    }
    cin>>n;
    while(n--)
    {
       	cin>>m;
       	for(i=0;i<=1000;i++)         
       	{
   			if(m==a[i])
      		{      
        		flag=1;
          		break;
            }   
        }
        if(flag==0)
        	cout<<"yes"<<endl;
        else
        	cout<<"no"<<endl;
    }
    return 0;
}


HDU 1999 不可摸数 (水题)

标签:style   blog   os   io   for   2014   问题   sp   log   

原文地址:http://blog.csdn.net/u013749862/article/details/39055939

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!