首页 > 其他分享 >c语言基础问题:1瓶汽水1元,2个空瓶可以换一瓶汽水,20元可以喝多少瓶汽水?

c语言基础问题:1瓶汽水1元,2个空瓶可以换一瓶汽水,20元可以喝多少瓶汽水?

时间:2024-06-07 23:04:49浏览次数:15  
标签:汽水 20 temp int 兑换 answer 空瓶

老师布置的小组作业,好像是曾经的蓝桥杯题目,自己琢磨一下写出来了,写都写了还都加了注释,就想着不如发到这上面了,有遇到类似问题的可以看看,代码比较笨但是很好理解。

#include<stdio.h>
int main()//1瓶汽水1元,2个空瓶可以换一瓶汽水,20元可以喝多少瓶汽水?
{
	int yuan = 20;//本金极其本金可购买的汽水瓶数(因为题设汽水价格为故无需计算便可以得到)
	int count = 0;//空瓶数目
	int answer = 0;//答案最后可以喝的汽水数目
	int temp;//用于储存临时变化的空瓶数目
	int duoyu=0;/*这个变量专门用于处理瓶盖数量大于2但是为奇数的状况,
	            用于储存为奇数时多出来不能进行兑换的空瓶数目*/
	printf("1瓶汽水1元,2个空瓶可以换一瓶汽水,20元可以喝多少瓶汽水?\n\n");
	
	count = yuan/1;//记录初始会产生的空瓶数目
	answer = yuan/1;//可以喝的汽水数目
	temp=count/2;/*第一次进行空瓶兑换后产生的空瓶数目,
	  // 同时产生的空瓶数也等于增加的汽水数目,所以下面的式子用temp作为汽水的增加值*/
	
	answer+=temp;//这个式子用于记录每次空瓶兑换完汽水以后增加的汽水数量,后续会频繁出现。
    while(count!=1)//当最后空瓶数量为1时,则不能达成兑换条件,循环结束输出结果
	{	
		if(temp%2!=0)//若在兑换后空瓶为奇数则执行下面的换算代码
		{
			--temp;//先让空瓶数目-1成为偶数,再去兑换汽水
			duoyu++;//多出来的空瓶不能兑换汽水的空瓶加1记录
			temp/=2;//剩余为偶数的空瓶进行汽水兑换
			answer+=temp;//已有解释在上
			temp+=duoyu;//兑换完之后的空瓶数加上之前多余的空瓶
			duoyu=0;//多余空瓶已经加回去了,故在这里恢复初始值0。			
		}
		else//若为偶数瓶盖则运行以下代码
		{
			temp/=2;//同上已有解释
			answer+=temp;//同上已有解释
		}
		count=temp;//返回进行兑换后剩余的空瓶数目以作为循环是否继续的判断条件
		
	} 
	printf("答:20元可以喝%d瓶汽水\n",answer);
}

标签:汽水,20,temp,int,兑换,answer,空瓶
From: https://blog.csdn.net/2302_82293971/article/details/139536808

相关文章

  • 2024.6.7.exercise
    //#define_CRT_SECURE_NO_WARNINGS//#include<stdio.h>//#include<stdlib.h>//#include<stdbool.h>////typedefintdatatype;//typedefstructtree//{// datatypedata;// structtree*left;// structtree*right;//}tree;////datatype*......
  • C# 链接access数据库 vs2010
    C#链接access数据库vs2010链接access数据库找到你当前以mdb为后缀名的文件,例如""E:\zonghedata_demo.mdb",那么链接的string内容为:"@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filePath+";"准备好链接字符串后,使用数据类型OleDbConnection来链接打开文件,代码如下......
  • 2024.6.7 日记
    今天心情不好,晚上效率很低。先总结一下模拟赛。今天确实打的不好,首先T1这个构造没啥说的,没发现就是没发现,但是freoepn是真逆天,交题前切记,编译一遍先。T2的问题在于维护方式想假导致被耗了好多好多时间,过程中还出现了倍增LCA写错,真的不牛,不过似乎这些时间省下来也没用。......
  • 2024/6/7 今日总结
    今天主要做了计网的实验三,并且完成若有两个自治系统,如下图所示,A自治系统获得一个202.13.5.10-202.13.5.120个公网IP地址,B自治系统获得了203.13.10.100-203.13.10.150个公网IP地址。但A系统内存在4个局域网,分别有80、16、30和8个用户,B系统内存在3个局域网,分别有32、47、120个用户......
  • 2024年银行总行和科技岗薪资待遇汇总。
    银行科技岗一般分布在总行、总行直属机构以及在各省会的二级单位(省分管培),此外还有软件中心、数据中心、科技子公司等,下面对后三种详细介绍,总行和各省省分管培生不再重复列出。其中很多在二线城市,性价比高(物价房价),对于专业要求不严格有的不卡计算机、软件工程专业;省份......
  • 【机器学习】TensorFlow 202107090086
    【源代码】importtensorflowastfl2_reg=tf.keras.regularizers.l2(0.1)#设置模型model=tf.keras.models.Sequential([tf.keras.layers.Dense(30,activation='relu',kernel_initializer='he_normal',kernel_regula......
  • 代码随想录第3天 | 链表 203.移除链表元素,707.设计链表,206.反转链表
    题目:203.移除链表元素思路:主要是头节点的删除问题,一种是直接在原链表上后移头节点设置虚拟头结点,指向原链表的头结点,在设置一个cur指针指向当前节点,虚拟头节点初始化后就不移动了,使用cur进行移动不要忘记释放删除节点的内存,自行设置的虚拟头节点也要释放时间复杂度:O(n)空......
  • 2024/6/7
    今天进行了数据库相关实验。(1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。  (2)查询所有零件情况,先按零件名称升序排列,零件名称相同按重量降序排列。  (3)查询项目名中含有“厂”的项目情况。  (4)查询供应商名称中第二个字为“方”的供应商情......
  • 代码随想录训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表
    python定义链表val:数据域,节点存储的元素。next:指针域,指向下一个节点的指针,最后一个节点指向None表示空指针。点击查看代码classListNode:def__init__(self,val,next=None):self.val=valself.next=next203.移除链表元素题目:给你一个链表的......
  • 国产大模型参加高考,同写2024年高考作文,及格分(通义千问、Kimi、智谱清言、Gemini Advan
    大家好,我是章北海今天高考,上午的语文结束,市面上又要来一场大模型参考的文章了。我也凑凑热闹,让通义千问、Kimi、智谱清言一起来写一下高考作文。公平起见,不加任何其他prompt,直接把题目甩过去。感觉写的都很一般,通篇口水文,都能拿个及格分吧。有点好奇,就加了几个国外选手参赛:Ge......