华为研发工程师编程题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; } }
标签:汽水,Scanner,个空,工程师,int,编程,华为,num,result 来源: https://www.cnblogs.com/fly1024/p/12577755.html