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个空瓶.
 

原文地址:https://www.cnblogs.com/zuozuo/p/2182444.html