Board logo

標題: Java 310 遞迴函數 [打印本頁]

作者: may    時間: 2023-9-1 16:16     標題: Java 310 遞迴函數

1. 題目說明:
請開啟C:\ANS.CSF\JP03資料夾中的JPD03.java進行編寫。依下列題意進行作答:設計可以遞迴執行的函數,使輸出值符合題意要求。檔案名稱請另存新檔為JPA03.java,儲存於C:\ANS.CSF\JP03資料夾,再進行評分。

2. 設計說明:
(1) 請在程式中撰寫一個compute的遞迴函數,接收main()傳遞的一個數值,compute函數計算下列公式並回傳至main()。
* compute(1) = 2
* compute(n) = compute(n - 1) + 3 x n
(2) 若使用者輸入負整數,請取絕對值後傳入compute();若輸入0、帶有小數點的數字或文字,請輸出【error】。

3. 輸入輸出:
輸入說明
一個整數

輸出說明
函數計算結果(輸出最後一行後不自動換行)

範例輸入1
5

範例輸出1
44

範例輸入2
0


範例輸出2
error

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

作者: 許志捷    時間: 2023-9-1 17:51

  1. package homework;

  2. import java.util.Scanner;

  3. public class Main {

  4.         public static void main(String[] args) {

  5.                 Scanner sc = new Scanner(System.in);
  6.                 int n;

  7.                 try {
  8.                         n=sc.nextInt();
  9.                         if(n<0)
  10.                                 System.out.print(compute(Math.abs(n)));
  11.                         else if(n==0)
  12.                                 System.out.print("error");
  13.                         else
  14.                                 System.out.print(compute(n));

  15.                 } catch (Exception e) {
  16.                         System.out.print("error");
  17.                         return;
  18.                 }
  19.                 // TO DO

  20.         }

  21.         public static int compute(int i) {
  22.                 if(i==1)
  23.                         return 2;
  24.                 return compute(i-1)+3*i;

  25.         }
  26. }
複製代碼

作者: 郭又瑄    時間: 2023-9-15 19:32

本帖最後由 郭又瑄 於 2023-9-15 19:41 編輯
  1. import java.util.Scanner;
  2. public class Ch01 {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.                 Scanner sc=new Scanner(System.in);

  6.                 int n;
  7.                 try{
  8.                         n=sc.nextInt();
  9.                         if(n==0){
  10.                                 System.out.println("error");
  11.                                 return;
  12.                         }
  13.                         n=Math.abs(n);
  14.                         System.out.println(compute(n));
  15.                 }catch(Exception e){
  16.                         System.out.println("error");
  17.                         return;
  18.                 }
  19.                 public static int compute(int i){
  20.                         if(i==1)
  21.                                 return 2;
  22.                         else
  23.                                 return compute(i-1)+3*i;
  24.                 }
  25.         }
複製代碼

作者: 洪浚恩    時間: 2023-9-15 19:35

  1. import java.util.Scanner;
  2. public class JPA03 {

  3.         public static void main(String[] args) {
  4.         Scanner sc=new Scanner(System.in);
  5.         int n;
  6.         try{
  7.                     n=sc.nextInt();
  8.                     if(n==0){
  9.                             System.out.println("error");
  10.                             return;
  11.                            
  12.                     }
  13.                     n=Math.abs(n);
  14.                     System.out.println(compute(n));
  15.         }catch(Exception e){
  16.                 System.out.println("error");
  17.                 return;
  18.         }

  19.         }
  20.         public static int compute(int i){
  21.                
  22.                 if(i==1)
  23.                         return 2;
  24.                 else
  25.                         return compute(i-1)+3*i;
  26.         }

  27. }
複製代碼

作者: 吳侑諶    時間: 2023-9-15 19:40

本帖最後由 吳侑諶 於 2023-10-19 19:36 編輯
  1. import java.util.Scanner;
  2. public class Ch01 {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.                 Scanner sc=new Scanner(System.in);
  6.                 int n;
  7.                 try{
  8.                         n=sc.nextInt();
  9.                         if(n==0){
  10.                                 System.out.print("error");
  11.                                 return;
  12.                         }
  13.                         n=Math.abs(n);
  14.                         System.out.print(compute(n));
  15.                 }catch(Exception e){
  16.                         System.out.print("error");
  17.                         return;
  18.                 }
  19.         }
  20.         public static int compute(int i){
  21.                 if(i==1)
  22.                         return 2;
  23.                 else
  24.                         return compute(i-1)+3*i;
  25.         }
  26. }
複製代碼

作者: 陳柏融    時間: 2023-9-15 19:40

本帖最後由 陳柏融 於 2023-9-15 19:41 編輯
  1. import java.util.Scanner;
  2. public class Ch04 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc new Scanner(System.in);
  5.         int n;
  6.         try{
  7.                 n=sc.nextInt();
  8.                 if(n==0){
  9.                         System.out.print("error");
  10.                     return;
  11.                 }
  12.                 n=Math.abs(n);
  13.         }catch(Exception e){
  14.                 System.out.print("error");
  15.                 return;
  16.         }
  17.         }
  18.         public static int compute(int i){
  19.                 if(i==0){
  20.                         return 2;
  21.                 }
  22.                 else
  23.                         return compute(i-1)+3*i;
  24.         }
  25. }
複製代碼

作者: 洪浚恩    時間: 2023-9-15 19:41

  1. import java.util.Scanner;
  2. public class JPA03 {

  3.         public static void main(String[] args) {
  4.                 Scanner sc=new Scanner(System.in);
  5.                 int n;
  6.                 try{
  7.                         n=sc.nextInt();
  8.                         if(n==0){
  9.                                 System.out.println("error");
  10.                                 return;

  11.                         }
  12.                         n=Math.abs(n);
  13.                         System.out.println(compute(n));
  14.                 }catch(Exception e){
  15.                         System.out.println("error");
  16.                         return;
  17.                 }

  18.         }
  19.         public static int compute(int i){

  20.                 if(i==1)
  21.                         return 2;
  22.                 else
  23.                         return compute(i-1)+3*i;
  24.         }

  25. }
複製代碼

作者: 田家齊    時間: 2023-9-15 19:42

  1. import java.util.Scanner;
  2. public class Ch02
  3. {

  4.         public static void main(String[] args)
  5.         {
  6.                 Scanner sc=new Scanner(System.in);
  7.                 int n=0;
  8.                 try
  9.                 {
  10.                         n=sc.nextInt();
  11.                         if(n==0)
  12.                         {
  13.                                 System.out.print("error");
  14.                                 return;
  15.                         }
  16.                         n=Math.abs(n);
  17.                         System.out.print(compute(n));
  18.                 }catch(Exception e)
  19.                 {
  20.                         System.out.print("error");
  21.                         return;
  22.                 }


  23.         }
  24.         public static int compute(int i)
  25.         {
  26.                 if(i==1)
  27.                         return 2;
  28.                 else
  29.                         return compute(i-1)+3*i;
  30.         }
  31. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2