返回列表 發帖
402
  1. import java.util.Scanner;
  2. public class JPD04 {
  3.     static Scanner keyboard = new Scanner(System.in);
  4.     public static void main(String args[]) {
  5.         int n;
  6.         System.out.print("Input n(0<=n<=16):");
  7.         n=keyboard.nextInt();
  8.         while(n!=999) {
  9.                 System.out.println(n+"的階乘(尾端遞迴)="+add(n));
  10.                 System.out.println(n+"的階乘(迴圈)="+round(n));
  11.                 System.out.print("Input n (0 <= n <= 16): ");
  12.             n=keyboard.nextInt();
  13.         }
  14.     }
  15.    
  16.     static int add(int n) {
  17.             if(n==1) {
  18.                     return 1;
  19.             }
  20.             else {
  21.                     return n*add(n-1);
  22.             }
  23.     }
  24.    
  25.     static int round(int n) {
  26.             int m=1,o=n;
  27.             for(int i=1;i<=o;i++) {
  28.                     m=m*n;
  29.                     n--;
  30.             }
  31.             return m;
  32.     }
  33. }
複製代碼

TOP

403
  1. import java.util.Scanner;
  2. public class JPD04 {
  3.     static Scanner keyboard = new Scanner(System.in);
  4.     public static void main(String args[]) {
  5.         int m,n;
  6.         System.out.print("Input m:");
  7.         m=keyboard.nextInt();
  8.         while(m!=999) {
  9.                 System.out.print("Input n:");
  10.             n=keyboard.nextInt();
  11.             System.out.println("Ans(尾端遞迴)="+add(m,n,1));
  12.             System.out.println("Ans(迴圈)="+round(m,n,1));
  13.             System.out.print("Input m:");
  14.             m=keyboard.nextInt();
  15.         }
  16.     }
  17.     static int add(int m,int n,int r) {
  18.             if(n==0)
  19.                     return r;
  20.             else
  21.                     return add(m,n-1,r*m);
  22.     }
  23.    
  24.     static int round(int m,int n,int r) {
  25.             while(n!=0)
  26.         {
  27.                 r*=m;
  28.                 n--;               
  29.         }
  30.         return r;
  31.     }
  32. }
複製代碼

TOP

408
  1. import java.util.Scanner;
  2. public class JPA03 {
  3.     static Scanner keyboard = new Scanner(System.in);
  4.     public static void main(String args[]) {
  5.         String s, c;
  6.         System.out.print("Input a string: ");
  7.         s = keyboard.nextLine();
  8.         System.out.printf("%s\n", reverse(s));
  9.         System.out.print("Input a string: ");
  10.         s = keyboard.nextLine();
  11.         System.out.printf("%s\n", reverse(s));
  12.     }
  13.    
  14.     static String reverse(String s) {
  15.             if(s.equals(""))
  16.                     return "";
  17.             else
  18.                     return reverse(s.substring(1))+s.substring(0,1);
  19.     }
  20. }
複製代碼

TOP

返回列表