码迷,mamicode.com
首页 > 编程语言 > 详细

Java递归练习

时间:2015-12-23 08:08:31      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

 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 瓶

 

Java递归练习

标签:

原文地址:http://www.cnblogs.com/nelon1990/p/5068737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!