1부터 n까지의 곱을 출력하는 문제 (계승, 팩토리얼)
paizaランクD相当問題 「カーディガンセット」ゲットチャレンジ!
ある正の整数 n が入力されます。
1 から n を全て掛けあわせた数を出力して下さい。
例えば以下のような入力の場合
1 × 2 × 3 × 4 を計算し以下のように出力してください。
入力される値
入力は標準入力にて以下のフォーマットで与えられます。
条件
すべてのテストケースにおいて、以下の条件をみたします。
n は正の整数
期待する出力
1 から n を全て掛けあわせた数を出力して下さい。
1. for문을 사용한 경우
package paiza;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class paiza07 {
public static void main(String[] args) throws Exception {
// 自分の得意な言語で
// Let's チャレンジ!! 「カーディガンセット」ゲットチャレンジ!
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
int n = Integer.parseInt(line);
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = factorial * i;
}
System.out.println(factorial);
}
}
1부터 n까지의 계승(팩토리얼)을 계산하는 문제.
factorial의 초기값은 1로 잡고, 1부터 n까지 증가시키며 factorial을 곱해나가면 된다.
2. while문을 사용한 경우
package paiza;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class paiza07b {
public static void main(String[] args) throws Exception {
// 自分の得意な言語で
// Let's チャレンジ!! 「カーディガンセット」ゲットチャレンジ!
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
int n = Integer.parseInt(line);
int factorial = 1;
while (n > 1) factorial = factorial * n--;
System.out.println(factorial);
}
}