java - 欧拉投影数字阶乘之和

标签 java algorithm

这里是关于数字阶乘之和的问题

http://projecteuler.net/index.php?section=problems&id=254

这里还有将 sf(n) 定义为 f(n) 的数字之和。所以 sf(342) = 3 + 2 = 5。

这里的代码打印 32 作为数字阶乘之和,但它没有显示第二个结果

import java.util.*;
public class fact_of_digit1 {
public static int fact(int a){
    if (a==0)  return 1;
     return a*fact(a-1);
}
   public static int factorialofdigit(int a){
       int sum=0;
       int t=0;
       while (a!=0){
           t= a%10;
            a/=10;
            sum+=fact(t);
       }
       return sum;

   }
    public static void main(String[] args) {
       Scanner scnr=new Scanner (System.in);
       System.out.println("enter a:");
       int a=scnr.nextInt();
     System.out.println(factorialofdigit(a));
     System.out.println(sfn(a));
    }
    public static int sfn(int a){
        int sum1=0;
        int t=factorialofdigit(a);
         while (t!=0){
             sum1+=t%10;
             t/=10;



         }
         return sum1;
    }

}

结果是:

enter a:
342
32
BUILD SUCCESSFUL (total time: 3 seconds)

最佳答案

代码看起来不错,并且可以在这里工作,因此这可能与 IDE 或您使用它的方式有关。

您是否在 Debug模式下运行它?你设置断点了吗?

如果您创建一个新项目并将代码复制到其中会发生什么?

下面的程序能运行吗?

import java.util.*;
public class fact_of_digit1 {
    public static void main(String[] args) {
        Scanner scnr=new Scanner (System.in);
        System.out.println("enter a:");
        int a=scnr.nextInt();
        System.out.println(5);
        System.out.println(3);
    }
}

将扫描仪替换为“int a = 342”。

在末尾添加额外的 println 语句。

关于java - 欧拉投影数字阶乘之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3174830/

相关文章:

algorithm - Splay Trees中节点的插入和删除

C++ 添加不工作

python - 查找数组的连续总和

java - 为什么 SocketChannel 调用 read(byteBuffer) 会抛出 java.net.SocketException : recvfrom failed: ECONNRESET (Connection reset by peer)

java - jTable 单元格背景颜色

java.io.IOException : Cannot run program "/usr/bin/sh": java. io.IOException : error=2, 没有那个文件或目录

java - 将方法实现到按钮监听器中时出错

c++ - 我怎样才能使这个算法的内存效率更高?

python-3.x - 如何比较嵌套结构?

java - 在通知中制作一首特定的歌曲