这个是我自己想的,可能有些许复杂。
还有第二个简单粗暴版本,往下看哦!
以下代码仅供参考,可能思路不是很好。
#include<stdio.h>
#include<windows.h>
#pragma warning(disable:4996)
//喝汽水,1瓶汽水1元,
//2个空瓶可以换一瓶汽水,给n元,可以买多少汽水。
int Buy(int n)
{
int count=n;
while(n>1)
{
if(n%2==0)
{
n/=2;
count+=n;
}
else{
count+=n/2;
n=n/2+1;
}
}
return count;
}
int main()
{
int money=0;
printf("请输入你的money:");
scanf("%d",&money);
if(money<=0)
{
printf("抱歉,你一瓶都喝不到!\n");
}
else{
int index=Buy(money);
printf("你一共可以喝到%d瓶汽水\n",index);
}
system("pause");
return 0;
}
编译环境:vs2019
当你找到了这个问题的规律所在后,就会发现这样写很容易解决这个问题。
#include<stdio.h>
#include<windows.h>
#pragma warning(disable:4996)
//喝汽水,1瓶汽水1元,
//2个空瓶可以换一瓶汽水,给n元,可以买多少汽水。
int main()
{
int money=0;
printf("请输入你的money:");
scanf("%d",&money);
if(money<=0)
{
printf("抱歉,你一瓶都喝不到!\n");
}
else{
printf("你一共可以喝到%d瓶汽水\n",money*2-1);
}
system("pause");
return 0;
}
运行环境:vs2019
附图: