【习题01】喝汽水问题
题目喝汽水1瓶汽水1元2个空瓶可以换一瓶汽水给20元可以喝多少汽水编程实现。1、题目解析通过分析我们可以得到以下流程图20元钱1元1瓶我们可以先买到20瓶就会得到20个空瓶然后就可以换20个空瓶此时没有剩余空瓶得到10瓶就会得到10个空瓶此时没有剩余空瓶得到5瓶就会得到5个空瓶就会得到2瓶剩余1个空瓶现在就有3个空瓶可以换1瓶并且剩余1个空瓶然后由2个空瓶可以换1瓶此时没有剩余空瓶这时可以借1个空瓶就有2个空瓶可以换1瓶这1个空瓶还回去即可。经过上述分析我们可以得到这一个流程的完成需要4个变量分别是钱、喝的瓶数、空瓶数、兑换后剩余的空瓶。完成这个流程需要进行分支和循环程序结束的条件是空瓶数为0。循环结束的条件是空瓶数小于2。空瓶数为1的情况是需要借瓶。2、定义变量money——钱bottle——喝的瓶数k_bottle——空瓶数mod——兑换后剩余的空瓶求兑换的瓶数我们可以使用空瓶数除2。求兑换后剩余的空瓶我们可以使用空瓶模2。3、代码演示//喝汽水1瓶汽水1元2个空瓶可以换一瓶汽水给20元可以喝多少汽水编程实现。#includestdio.hintaddbottle(intx,inty){intmod0;//换完后剩下的空瓶数//x-喝的瓶数//y-空瓶数while(y2){mody%2;//换完后剩余的空瓶yy/2;//换的瓶数xxy;//喝的瓶数yymod;//新的空瓶数}if(y1){x(y1)/2;//最后剩1瓶借1瓶喝完后归还空瓶。}returnx;}intmain(){intmoney20;//钱intk_bottle0;//空瓶数intbottle0;//喝的瓶数bottlemoney/1;k_bottlebottle;intraddbottle(bottle,k_bottle);printf(%d,r);return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2629154.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!