zoukankan      html  css  js  c++  java
  • 华为机试-汽水瓶

    有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”
    答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,
    这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。
    如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

    输入描述:
    输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,
    你的程序不应当处理这一行。


    输出描述:
    对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

    程序实现

    1. package huaweiyanfa_nk;  
    2.   
    3. import java.util.Scanner;  
    4.   
    5. /** 
    6.  * 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?” 
    7.  * 答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的, 
    8.  * 这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。 
    9.  * 如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝? 输入描述: 
    10.  * 输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束, 
    11.  * 你的程序不应当处理这一行。 输出描述: 对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。 
    12.  *  
    13.  * @author Administrator 
    14.  * 
    15.  */  
    16. public class Main {  
    17.   
    18.     public static void main(String[] args) {  
    19.         Scanner scanner = new Scanner(System.in);  
    20.         while (scanner.hasNext()) {  
    21.             int num = scanner.nextInt();  
    22.             if (num == 0) {  
    23.                 break;  
    24.             }  
    25.             int result = exchangeWaterBottle(num);  
    26.             System.out.println(result);  
    27.         }  
    28.   
    29.     }  
    30.   
    31.     private static int exchangeWaterBottle(int num) {  
    32.   
    33.         if (num <= 1) {  
    34.             return 0;  
    35.         }  
    36.         if (num == 2) {  
    37.             return 1;  
    38.         }  
    39.         return num / 3 + exchangeWaterBottle(num / 3 + num % 3);  
    40.     }  
    41.   
    42. }  
  • 相关阅读:
    CodeForces
    Educational Codeforces Round 111 (Rated for Div. 2)
    「JOISC 2020 Day4」治疗计划
    [杂题合集] 其真无码耶?
    [2021.7.16] 洛谷七月月赛
    倾心力作!嵌入式linux开发指南(RK3399),3399教程1500+,开发资料全覆盖
    资料丨迅为IMX6ULL开发板-主频和时钟配置例程(二)
    资料丨迅为IMX6ULL开发板-主频和时钟配置例程
    自学嵌入式拉低偏差丨4412开发板学习指引+为学习后面内容打下基础
    文档资源有话说丨再次升级-i.MX6Q开发板手册更新
  • 原文地址:https://www.cnblogs.com/wwjldm/p/7158759.html
Copyright © 2011-2022 走看看