• 小光棍数


    小光棍数

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:1
    描述
    最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少?
    输入
    有多组测试数据。第一行一个整数n,表示有n组测试数据。接下来的每行有一个整数m。
    输出
    输出第m个小光棍数。
    样例输入
                 1
                 1
    样例输出
                 471

     

     我最初的想法该方法过于复杂了,该代码一直无法AC,最后我发现应该是超时,但提交却为编译错误

    #include<stdio.h>
    int main()
    {
    	int n,i;
    	__int64 m,t,j,k,s;
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%I64d",&m);
    		if(m==1)
    			printf("471
    ");
    		else
    		{
    			for(j=2,k=1;j<=m;k++)
    			{
    				t=471+k;
    				s=t%1000;
    				s=(s*s*s)%1000;
    				if(s%1000==111)
    				{
    					j++;
    				}
    			}
    		    printf("%I64d
    ",t);
    		}	
    	}
    	return 0;
    
    }
    
    



    只要这个数的后三位是471就可以,该方法较为简洁.但仍然无法AC,错误提示为编译错误,一直很困惑。

    #include<stdio.h>
    int main()
    {
        int n;
        __int64 s,m;
        scanf("%d",&n);
        while(n--)
    	{
         scanf("%I64d",&m);
    	 s=(m-1)*1000+471;
         printf("%I64d
    ",s);
    	 }
       return 0;
    }


    最后看了一下优秀代码,才发现问题之所在,是long long与__int64的区别(http://blog.csdn.net/hongxdong/article/details/5559312

    #include<stdio.h> 
    int main() 
    {   long long a,b;    
        scanf("%lld",&a);     
        while(a--)     
    	{ 
    		scanf("%lld",&b);        
            printf("%lld
    ",(b-1)*1000+471);     
    	} 
        return 0; 
    } 

    int ,long , long long类型的范围 (借鉴)

    unsigned   int   0~4294967295  
    int   2147483648~2147483647
    unsigned long 0~4294967295
    long   2147483648~2147483647
    long long的最大值:9223372036854775807
    long long的最小值:-9223372036854775808
    unsigned long long的最大值:18446744073709551615

    __int64的最大值:9223372036854775807
    __int64的最小值:-9223372036854775808
    unsigned __int64的最大值:18446744073709551615


     

  • 相关阅读:
    (转)非常好的协同过滤入门文章
    PHP错误:Call to undefined function curl_init()
    (转)Ubuntu下Apache、php、mysql默认安装路径
    (转)matlab各类数学公式
    centos7下安装momgodb3
    centos7 使用mount 挂载window10 (超简单)
    Centos7 安装nginx1.14
    Centos7 安装MySQL5.7
    python3.5 安装 numpy1.14.4
    python3 tkinter 桌面软件教程
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4237346.html
Copyright © 2020-2023  润新知