返回列表 發帖

20220521遞迴小測驗

本帖最後由 葉桔良 於 2022-5-21 14:40 編輯

本帖隱藏的內容需要回復才可以瀏覽


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.         
  6.     ...

  7.     }
  8.     ...
  9. }
複製代碼
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.         
  6.     ...



  7.     }
  8.    
  9.    
  10.     ...

  11. }
複製代碼
408
  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.         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.     ...
  15. }
複製代碼

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

本帖最後由 朱春珠 於 2022-5-21 14:06 編輯

402
  1. import java.util.Scanner;
  2. public class JPA04 {
  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.     {
  10.             System.out.println(n+"的階乘(尾端遞迴) = "+a(n));
  11.             System.out.println(n+"的階乘(迴圈) = "+b(n));
  12.             System.out.print("Input n (0 <= n <= 16): ");
  13.         n=keyboard.nextInt();
  14.     }
  15.     }
  16.     static int a(int n)
  17.     {
  18.             if(n==1)
  19.                     return 1;
  20.             else
  21.                     return n*a(n-1);
  22.     }
  23.     static int b(int n)
  24.     {
  25.             int x=1;
  26.             for(int i=n;i>=1;i--)
  27.             {
  28.                     x=x*n;
  29.                     n--;
  30.             }
  31.             return x;
  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

403
  1. import java.util.Scanner;
  2. public class JPA04 {
  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.     System.out.print("Input n: ");
  9.     n=keyboard.nextInt();
  10.     while(m!=999)
  11.     {
  12.             System.out.println("Ans 的階乘(尾端遞迴) = "+a(n,m));
  13.             System.out.println("Ans 的階乘(迴圈) = "+b(n,m));
  14.             System.out.print("Input m: ");
  15.         m=keyboard.nextInt();
  16.         System.out.print("Input n: ");
  17.         n=keyboard.nextInt();
  18.     }
  19.     }
  20.     static int a(int n,int m)
  21.     {
  22.            
  23.             if(n==1)
  24.                     return m;
  25.             else
  26.                     return m*a(n-1,m);
  27.     }
  28.     static int b(int n,int m)
  29.     {
  30.             int r=1;
  31.             for(int i=n;i>=1;i--)
  32.             {
  33.                     r=r*m;
  34.                     n--;
  35.             }
  36.             return r;
  37.     }
  38. }
複製代碼

TOP

408
  1. import java.util.Scanner;
  2. public class JPA04 {
  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.     {
  16.             if(s.equals(""))
  17.                     return "";
  18.             else
  19.                     return reverse(s.substring(1))+s.substring(0,1);
  20.                                    
  21.     }
  22. }
複製代碼

TOP

返回列表