华为研发工程师编程题1

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?

”答案是5瓶,方法如下:

先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。

然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。

如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scaner = new Scanner(System.in);
        while(scaner.hasNext()){
            int num = scaner.nextInt();
            if(num == 0){
                break;
            }
            System.out.println(calc(num));
        }
    }
     
    private static int calc(int num){
        int result = 0;
        while(num > 2){
         int i = num /3;
         int j = num % 3;
         result += i;
         num = i + j;
        }
        if(num == 2){
            result +=1;
        }
        return result;
    }
}

猜你喜欢

转载自www.cnblogs.com/fly1024/p/12577755.html