zoukankan      html  css  js  c++  java
  • 1-算法题之空瓶子换水喝

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

     1 /**
     2 * 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,
     3 * 她最多可以换多少瓶汽水喝?”答案是5瓶,
     4 * 方法如下:
     5 * 先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。
     6 * 然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
     7 */import java.io.IOException;
     8 
     9 import java.util.Scanner;
    10 
    11 public class Main{
    12     public static void main(String[] args) throws IOException {
    13         Scanner sc = new  Scanner(System.in);
    14         while(sc.hasNext()){
    15             int n = sc.nextInt();
    16             if(n>=1 && n<=100){
    17                 System.out.println(getNum(n));
    18             }else{
    19                 break;
    20             }
    21         }
    22     }
    23 
    24   //递归求解
    25     public static int getNum(int n) {
    26         if(n<1 && n>100){
    27             return -1;
    28         }
    29         if(n == 1){
    30             return 0;
    31         }
    32      //如果有两个空瓶子,可以换一瓶水
    33         if(n == 2){
    34             return 1;
    35         }
    36      // n/3得到的是当前n个空瓶子可以直接换取多少瓶水
    37         // n%3求的是 当前n个空瓶子换了若干瓶水之后,还剩多少个空瓶子,再加n/3,就是下一轮可以用来换水的空瓶子总数
    38 
    39         return n/3+getNum(n%3 + n/3);
    40     }
    41 }
  • 相关阅读:
    归并排序(Merge Sort)
    AtCoder AGC035D Add and Remove (状压DP)
    AtCoder AGC034D Manhattan Max Matching (费用流)
    AtCoder AGC033F Adding Edges (图论)
    AtCoder AGC031F Walk on Graph (图论、数论)
    AtCoder AGC031E Snuke the Phantom Thief (费用流)
    AtCoder AGC029F Construction of a Tree (二分图匹配)
    AtCoder AGC029E Wandering TKHS
    AtCoder AGC039F Min Product Sum (容斥原理、组合计数、DP)
    AtCoder AGC035E Develop (DP、图论、计数)
  • 原文地址:https://www.cnblogs.com/sun-/p/12676484.html
Copyright © 2011-2022 走看看