C#:1000瓶汽水,每喝3瓶赚一瓶,最终喝了多少瓶,剩几个空瓶?
/*
* 题目:共有1000瓶汽水
* 每喝完后一瓶得到的一个空瓶子
* 每3个空瓶子又能换1瓶汽水,喝掉以后又得到一个空瓶子,问总共能喝多少瓶汽水,最后还剩余多少个空瓶子?
* */
1 static void Main(){
2 int qs = 1000; //1000瓶汽水
3 int kp = 0; //空瓶
4 int hd = 0; //喝掉
5
6 while(qs >= 1){
7 kp++;
8 if(kp == 3){
9 qs++;
10 kp=0;
11 }
12 hd++;
13 qs--;
14
15 }
16 Console.WriteLine("喝掉:{0}瓶\t空瓶:{1}个",hd,kp);
17 }
结果:
喝掉:1499瓶 空瓶:2个
逐推演算如下:
1000瓶汽水:
--------------------------
1000%3 = 333 1 一次性喝掉1000瓶,可以换333瓶汽水,余1个空瓶 = 喝掉了1000瓶汽水
333%3 = 111 0 333瓶汽水喝掉后换取111瓶汽水,余0个空瓶 = 共喝掉了1000+333 = 1333瓶汽水
111%3 = 37 0 111瓶汽水喝掉后换取37瓶汽水,余0个空瓶 = 共喝掉了1333+111 = 1444瓶汽水
37%3 = 12 1 37瓶汽水喝掉后换取12瓶汽水,余1个空瓶 = 共喝掉了1444+37 = 1481瓶汽水
12%3 = 4 0 12瓶汽水喝掉后换取4瓶汽水,余0个空瓶 =共喝掉了1481+12 = 1493瓶汽水
4%3 = 1 1 4瓶汽水喝掉后换取1瓶汽水,余1个空瓶 =共喝掉了1493+4 = 1497瓶汽水
1瓶汽水被喝掉,余1个空瓶 =共喝掉了1497+1 = 1498瓶汽水
空瓶累计为:4个,换1瓶汽水,余1个空瓶 =共喝掉了1498+1 = 1499瓶汽水
空瓶累计为:2个空瓶,无法兑换汽水 总计:1499瓶汽水,2个空瓶.