сумма цифр факториалов в проекте Эйлера - PullRequest
0 голосов
/ 04 июля 2010

здесь проблема с суммой факториала цифры

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

также здесь Define sf(n) as the sum of the digits of f(n). So 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)

Ответы [ 2 ]

1 голос
/ 04 июля 2010

Код выглядит нормально и работает здесь, так что это может быть связано с IDE или с тем, как вы его используете.

Вы используете режим отладки?Вы установили какие-либо точки останова?

Что произойдет, если вы создадите новый проект и скопируете в него код?

Работает ли следующая программа?

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 в конце.

0 голосов
/ 04 июля 2010

Основная функция имеет два оператора печати, которые не находятся в цикле.Вы напечатаете только эти два числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...