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 瓶
时间: 2024-10-11 16:04:10