简单的喝汽水问题

这个是我自己想的,可能有些许复杂。
还有第二个简单粗暴版本,往下看哦!
以下代码仅供参考,可能思路不是很好。

#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

附图:
在这里插入图片描述
在这里插入图片描述

原创文章 11 获赞 20 访问量 353

猜你喜欢

转载自blog.csdn.net/weixin_46078890/article/details/106145947
今日推荐