解题思路:
递归实现,具体思路看代码。
参考代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); while (n != 0) { // 递归 System.out.println(drink(n)); n = scanner.nextInt(); } } public static int drink(int n) { // 当空汽水瓶为1或0时,只能换0瓶 if (n == 1 || n == 0) { return 0; } //空汽水瓶为2时,可以换1瓶(这1瓶用来换) if (n == 2) { return 1; } // 递归实现,n/3为直接换的饮料瓶数 // 剩余n % 3个空饮料瓶,将这n/3瓶饮料喝完,又多出n/3个空饮料瓶,递归求解(n / 3 + n % 3)换饮料 return n / 3 + drink(n / 3 + n % 3); } }
0.0分
0 人评分
C二级辅导-同因查找 (C语言代码)浏览:564 |
陶陶摘苹果 (C语言代码)浏览:1607 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:688 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:569 |
C语言训练-自由落体问题 (C语言代码)浏览:1738 |
简单的a+b (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:587 |
WU-字符串比较 (C++代码)浏览:758 |
WU-整除问题 (C++代码)浏览:612 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:537 |