- import java.util.Scanner;
- public class JPD04 {
- static Scanner keyboard = new Scanner(System.in);
- public static void main(String args[]) {
- System.out.println("Input n(0<=n<=16):");
- int n = keyboard.nextInt();
- while (n != 999) {
- System.out.println(n + "的階乘(尾端遞迴)=" + fac(n, 1));
- System.out.println(n + "的階乘(迴圈)=" + facloop(n, 1));
- System.out.println("Input n(0<=n<=16):");
- n = keyboard.nextInt();
- }
- }
- static int fac(int n, int r) {
- if (n == 0)
- return r;
- else
- return fac(n - 1, r * n);
- }
- static int facloop(int n, int r) {
- while (n != 0) {
- r = r * n;
- n--;
- }
- return r;
- }
- }
複製代碼 |