根據你借錢的多少,得出你最多可以喝多少瓶
一、實現代碼
#include <iostream>
using namespace std;
int main()
{
while (true)
{
int x = 20;//你有的錢
cout << "你有的錢:" << x << "元" << endl;
int y = 0;//你借的錢;
cout << "你要借多少錢:";
cin >> y;
if (y <= x)//根據有借有還(x+y)/2=x,當有時y <= x,首次借錢還得起錢
{
int sum1 = x + y;//目前手上有的空瓶
int sum = 0;//記錄用空瓶換喝的瓶數
int tmp1 = 0;//記錄空瓶爲奇數的變量
if (sum1 % 2 == 1)//判斷起始空瓶數的奇偶
{
sum1 = sum1 - 1;//若爲奇數,減去一個空瓶
tmp1++;//記下減去的空瓶
}
sum1 = sum1 / 2 - y;//先還錢
while (sum1 >= 1)
{
if (sum1 % 2 == 1)//判斷換購過程中空瓶數的奇偶
{
tmp1++;//若爲奇數,記下接下來會,被自動減去的空瓶
}
sum = sum1 + sum;//累加,每次換購的瓶數
sum1 = sum1 / 2;//進行換購,奇數自動減去一個空瓶
}
//統計規律,y爲偶數時,tmp1爲偶數,y爲奇數時,tmp1爲奇數
if (tmp1 % 2 == 0)
{
int all = x + y + sum + tmp1 / 2;
cout << "你可以最多喝:" << all << "瓶" << endl;
}
if (tmp1 % 2 == 1)
{
int all = x + y + sum + tmp1 / 2 + 1;
cout << "你可以最多喝:" << all << "瓶" << endl;
}
break;
}
else//根據有借有還(x+y)/2=x,當有y>x時,首次借錢還不起錢
{
cout << "你還不起首次借的錢,不可以借這麼多,重來" << endl;
continue;
}
cout << endl;
}
return 0;
}
二、運行結果
如有不足之處,還望指正1。
如果對您有幫助可以點贊、收藏、關注,將會是我最大的動力 ↩︎