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 }
運行結果
輸入購買的可樂數:24 第 1 次兌換,本次兌換總共有 24 個瓶蓋,用 24 個瓶蓋換了 8 瓶可樂,剩余 0 個瓶蓋可用於下次兌換 第 2 次兌換,本次兌換總共有 8 個瓶蓋,用 6 個瓶蓋換了 2 瓶可樂,剩余 2 個瓶蓋可用於下次兌換 第 3 次兌換,本次兌換總共有 4 個瓶蓋,用 3 個瓶蓋換了 1 瓶可樂,剩余 1 個瓶蓋可用於下次兌換 最終剩下 2 個瓶蓋,不足以兌換 -------------------------- 總共可獲得 35 瓶