Java再帰実装階乗
3204 ワード
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
while (true) {
System.out.print(" ( 0 ):");
try {
n = sc.nextInt();
} catch (Exception e) {
System.out.println(" !");
sc.nextLine();
continue;
}
if (n == 0) {
break;
}
System.out.printf("%d! = %d
", n, fact(n));
}
System.out.println(" !");
}
private static long fact(int n) {
if (n < 0) {
System.out.println(" !");
return -1;
} else {
return factorial(n);
}
}
private static long factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(--n);
}
}
}
Java再帰実装階乗