本文實例講述了C#算法設計之關于1000瓶水的問題。分享給大家供大家參考。具體如下:
題目如下:假設有N瓶水(當然N>0吧)
每喝一瓶后可以得到的一個空瓶子
而 每3個空瓶子又能換1瓶水,喝掉以后又得到一個空瓶子,
問總共能喝多少瓶水,最后還剩余多少個空瓶子?
代碼如下:
private int Water(int n, int emptyQty){ Console.WriteLine("喝了" + n + "瓶水,多" + emptyQty + "個空瓶子."); if (n + emptyQty < 3) //如果喝完水+空瓶還沒有3的話,那就喝完了 { Console.WriteLine("多" + (n + emptyQty) + "個空瓶子."); return n; } int a = (n + emptyQty) / 3; //喝了可換a瓶水 int b = (n + emptyQty) % 3; //余幾個空瓶 return n + Water(a, b);}
假設起初是1000瓶的話,調用方法
int sum = Water(1000,0);Console.WriteLine("喝了" + sum + "瓶水");
希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答