• 递归练习,喝汽水问题


    问题:
    一个人买汽水,一块钱一瓶汽水,三个瓶盖可以换一瓶汽水,两个空瓶可以换一瓶汽水
    问20块钱可以买多少汽水?
    注意:使用递归

    import java.util.*;
    public class RecursionThreePara {
    public static void main(String[] args){
    System.out.println("规则如下:有若干元块钱,汽水一块钱一瓶,2个空瓶可以换一瓶汽水,3个瓶盖也也可以换一瓶汽水,问共可以喝到多少瓶汽水?");
    Scanner scan=new Scanner(System.in);
    System.out.println("请输入您手中的钱数");
    if(scan.hasNextInt()){
    int i =scan.nextInt();
    int result =Recursion(i,0,0);
    System.out.printf("您一共可以喝到 %d 瓶汽水",result);
    }
    else{
    System.out.println("您的输入不合法");
    }

    Recursion(20,0,0);

    }

    public static int Recursion(int Total,int Bottle,int Caps){
    Bottle=Bottle%2;
    Caps=Caps%3;
    Bottle=Total+Bottle;
    Caps=Total+Caps;
    if(Bottle<2&&Caps<3){
    return Total;
    }
    else{
    return Recursion((Bottle/2+Caps/3),Bottle,Caps)+Total;
    }
    }
    }

     问题:
    3个空瓶可以换一瓶汽水
    问20个空瓶可以喝多少汽水?
    注意:使用递归

    import java.util.*;
    public class RecursionBottle {
        public static void main(String[] args){
            System.out.println("使用空瓶子换汽水,换取规则是三个空拼字可以换取一瓶汽水!");
            System.out.println("请输入您手中的空瓶子数");
            Scanner scan = new Scanner(System.in);
            if(scan.hasNextInt()){
                int i=scan.nextInt();
                int drink=Recursion(i,0);
                if(drink<=0){
                    System.out.println("您的瓶子太少,换不到汽水喝");
                }
                else{
                    System.out.printf("您的空瓶子可以换取%d瓶汽水喝",drink);
    
                }
    
            }
            else{
                System.out.println("您的输入不合法,请重新输入");
            }
    
    
        }
    
        public static int Recursion(int Bottle,int drinks){
           int bottle=Bottle%3;
           drinks = drinks+(Bottle/3);
           if(Bottle<3){
               return drinks;
            }
           else{
               return Recursion((Bottle/3)+bottle,drinks);
           }
    
        }
    }
  • 相关阅读:
    CentOS 基本设置
    CentOS 7 编译安装 Code::Blocks
    Java和C/C++进行DES/AES密文传输(借鉴)
    VS 2010 编译 Openssl
    Crypto++ 动态链接编译与实例测试
    c++11-bind的用法
    模板编程-迭代器
    LeetCode-Swap Nodes in Pairs
    LeetCode-Generate Parentheses
    Leetcode-Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/gaoshiguo/p/11869517.html
Copyright © 2020-2023  润新知