HDOJ(HDU) 2212 DFS(阶乘相关、)

举报
谙忆 发表于 2021/05/28 07:31:13 2021/05/28
【摘要】 Problem Description A DFS(digital factorial sum) number is found by summing the factorial of every digit of a positive integer. For example ,consider the positive integer 145 = 1!+4!+...

Problem Description
A DFS(digital factorial sum) number is found by summing the factorial of every digit of a positive integer.

For example ,consider the positive integer 145 = 1!+4!+5!, so it’s a DFS number.

Now you should find out all the DFS numbers in the range of int( [1, 2147483647] ).

There is no input for this problem. Output all the DFS numbers in increasing order. The first 2 lines of the output are shown below.

Input
no input

Output
Output all the DFS number in increasing order.

Sample Output
1
2
……

其实你输出后就会知道。。输出就只有4个数,你可以直接输出。
在这里,我是写了过程的。

public class Main{ static int fact[] = new int[10]; public static void main(String[] args) { dabiao(); //9!*7 7位数-比9999999小,后面的数字更不用说了,肯定小。 for(int i=1;i<=9999999;i++){ if(isTrue(i)){ System.out.println(i); } } } private static void dabiao() { //求阶乘的,注意:0的阶乘为1 fact[0]=1; for(int i=1;i<fact.length;i++){ fact[i]=1; for(int j=1;j<=i;j++){ fact[i]=fact[i]*j; } } } //判断是不是相等 private static boolean isTrue(int i) { if(i==1||i==2){ return true; } int sum=0; int n=i; while(n!=0){ int k=n%10; sum+=fact[k]; n=n/10; } if(sum==i){ return true; } return false; }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

文章来源: chenhx.blog.csdn.net,作者:谙忆,版权归原作者所有,如需转载,请联系作者。

原文链接:chenhx.blog.csdn.net/article/details/51327561

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。