Java遞歸練習


 1 /*
 2  * 
 3  * 描述:每 3 個可樂蓋可兌換 1 瓶子可樂,求買 n 瓶可樂最終可獲得的可樂瓶子數。
 4  * 
 5  *  
 6  * */
 7 
 8 import java.util.Scanner;
 9 
10 public class Digui {
11     public static int times = 1;
12     
13     public static void main(String[] args){
14         Scanner input = new Scanner(System.in);
15         System.out.print("輸入購買的可樂數:");
16         
17         times = 1;
18         
19         int j = input.nextInt();
20         int i = func(j);
21         
22         System.out.println("--------------------------");
23         System.out.println("總共可獲得 " + i + " 瓶\n\n");
24     }
25     
26     public static int func(int i){
27         if(i < 3){
28             System.out.println("最終剩下 " + i + " 個瓶蓋,不足以兌換");
29             return i;
30         }
31         else{
32             System.out.println("第 " + times++ + " 次兌換," + "本次兌換總共有 " + i + " 個瓶蓋,用 " + (i - i%3) + " 個瓶蓋換了 " + i/3 + " 瓶可樂,剩余 " + i%3 + " 個瓶蓋可用於下次兌換");
33             return ((i - i%3) + func(i/3 + i%3));
34         }
35     }
36 }

 運行結果

輸入購買的可樂數:241 次兌換,本次兌換總共有 24 個瓶蓋,用 24 個瓶蓋換了 8 瓶可樂,剩余 0 個瓶蓋可用於下次兌換
第 2 次兌換,本次兌換總共有 8 個瓶蓋,用 6 個瓶蓋換了 2 瓶可樂,剩余 2 個瓶蓋可用於下次兌換
第 3 次兌換,本次兌換總共有 4 個瓶蓋,用 3 個瓶蓋換了 1 瓶可樂,剩余 1 個瓶蓋可用於下次兌換
最終剩下 2 個瓶蓋,不足以兌換
--------------------------
總共可獲得 35 瓶

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM