zoukankan      html  css  js  c++  java
  • hdu 2212

    题目

    第一次见到这么搞笑的题:

    因为满足条件 in the range of int( [1, 2147483647] ). 的答案,就只有四个。

    所以可以,

    #include<stdio.h>
    int a[10];
    void init()
    {
    	long long temp=1;
    	for(int i=1;i<=9;i++)
    	{
    		temp*=i;
    		a[i]=temp;
    	}
    	a[0]=1;
    }
    int solve(long long i)
    {
    	long long temp =i;
    	long long sum=0;
    	while(temp)
    	{
    		int x = temp%10;
    		sum+=a[x];
    		temp=temp/10;
    	}
    	if(sum==i) return 1;
    	else return 0;
    }
    int main()
    {
    	init();
    	for(long long i=1;i<=2147483647;i++)
    	{
    	if(solve(i)==1) printf("%I64d
    ",i);
    	}
    	return 0;
    }
    

    用上面的代码算出答案后,用下面的代码submit

    #include<stdio.h>
    int main(){
        printf("1
    2
    145
    40585
    ");
     return 0;
    }

    也可以把main()里面的循环范围改小一些,只要能输出那四个数就OK了。。。。。


    但是还是得说一下,这道题的提交代码很简单,但是却不是那么好写。

    一开始我还没有想到原来打表求出前九个数的阶乘就可以了,愚昧。。。

  • 相关阅读:
    ubuntu使用iso作为本地源
    ubuntu配置简单的DNS服务器
    core data
    Core Animation教程
    制作framework&静态库
    notes
    textkit
    coretext
    nsset
    iOS Development Sites
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160259.html
Copyright © 2011-2022 走看看