2017-10-11 16 views
-2

私の階乗法は正しく働いていますが、数値と階乗結果を出力するだけで出力を変更したいと思います。ユーザは、代わりに6の階乗で、* 2 * 3 * 4 6 * 5 * 1 = 720を言って出力するための6を入力した場合、例えば、私はたいです:720Java階乗形式

int count, number;//declared count as loop and number as user input 
    int fact = 1;//declared as 1 
    Scanner reader = new Scanner(System.in); // Reading from System.in 
    System.out.println("Please enter a number above 0:"); 
    number = reader.nextInt(); // Scans the next token of the input as an int 
    System.out.println(number);//prints number the user input 
    if (number > 0) { 
     for (i = 1; i <= number; i++) {//loop 
      fact = fact * i; 
     } 
     System.out.println("Factorial of " + number + " is: " + fact); 
    } 
    else 
    { 
     System.out.println("Enter a number greater than 0"); 
    } 
} 
+0

使用*** System.out.print()***何とかのループ –

+1

ためそう書きますループはスペース・スター・スペースで区切られた6から1までの数字を表示します。あなたはループを書く方法を知っています。あなたは印刷方法を知っています。今あなたの知識をまとめてください。 – Andreas

答えて

0

ストリングとストアを作成数字。

このようなものを試してみてください。

int count, number;//declared count as loop and number as user input 
    String s; //create a string 
    Scanner reader = new Scanner(System.in); // Reading from System.in 
    System.out.println("Please enter a number above 0:"); 
    number = reader.nextInt(); // Scans the next token of the input as an int 
    int fact = number;//store the number retrieved 
    System.out.println(number);//prints number the user input 
    if (number > 0) { 
     s=String.valueOf(number); 
     for (int i = 1; i < number; i++) {//loop 
      fact = fact * i; 
      s = s +" * "+String.valueOf(number-i); 
     } 
     System.out.println(s+ " = " + fact); 
    } 
    else 
    { 
     System.out.println("Enter a number greater than 0"); 
    } 
0

この再帰的なアプローチをチェックアウト:(負の数を自分で確認してください:D)

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    int num = scanner.nextInt(); 
    System.out.println(getFactorialString(num, " = " + getFactorial(num))); 
} 

public static String getFactorialString(int num, String result) { 
    if (num == 0) return "0 => 1"; 
    if (num == 1) { 
     result = "" + num + "" + result; 
    } else { 
     result = getFactorialString(num - 1, result); 
     result = "" + num + " x " + result; 
    } 
    return result; 
} 

public static int getFactorial(int num) { 
    if (num == 0) return 1; 
    return num * getFactorial(num - 1); 
}