呼市网站优化,自己做的网站怎么在百度上搜到,陕西网站关键词自然排名优化,网站网页设计原则文章目录
一、文章简介
1.先买再换
1.1 代码逻辑#xff1a;
1.2 完整代码
1.3 运行结果
1.4 根据方法一总结优化
2.边买边换
2.1 代码逻辑#xff1a;
2.2 完整代码
2.3 运行结果 一、文章简介
本文所述专栏——C语言经典编程问题 C语言刷题_倔强的石头106的博客…文章目录
一、文章简介
1.先买再换
1.1 代码逻辑
1.2 完整代码
1.3 运行结果
1.4 根据方法一总结优化
2.边买边换
2.1 代码逻辑
2.2 完整代码
2.3 运行结果 一、文章简介
本文所述专栏——C语言经典编程问题 C语言刷题_倔强的石头106的博客-CSDN博客 喝汽水问题是一个经典的编程问题。 在这个问题中你初始有n元钱每瓶汽水1元。并且喝完汽水之后每2个空瓶子可以换一瓶汽水。求可以喝到多少瓶汽水。 解决此问题所需的C语言知识储备【C语言基础篇】结构控制中循环结构-CSDN博客 本篇文章介绍两种解题思路及过程
1.先买再换 先用初始的n元去买n瓶汽水这时也拥有了n个空瓶。n个空瓶再去换n/2瓶汽水这时现有的空瓶数量为 n/2 n%2 n%2表示不够换一瓶的数量可能为1或0再用现有的空瓶去换汽水直到空瓶数不够换一瓶汽水为止小于2。 1.1 代码逻辑
放到编程中来讲
① 首先创建变量n读入初始金额n
②接着创建变量total用于记录可喝汽水数量初始应该等于金额n 创建变量empty用于记录当前空瓶子数量初始也应该等于金额n ③然后进入while循环循环的条件是空瓶子数量1, 循环内部每一次循环完成—— 空瓶子数量empty除2等于本次换到的汽水数量计入喝汽水总量 换汽水完成之后本轮空瓶子数量 空瓶子数量/2空瓶子数量%2
当循环结束之后得到的total就是可以喝的汽水总数 1.2 完整代码
//喝汽水问题
//方法一
#includestdio.hint main()
{int money 0;scanf(%d, money);//输入可用金额int total money;//初始可喝汽水数量int empty money;//初始空瓶子数量while (empty 1){total total empty / 2;empty empty / 2 empty % 2;}printf(可以喝%d瓶\n, total);return 0;
}
1.3 运行结果 1.4 根据方法一总结优化
如果将程序多运行几次 观察结果我们就会发现初始金额n与可喝汽水数量total之间存在着一定规律
n5,total9
n6,total11
n7,total13
n8,total15
没错total2*n-1
如果在1元买一瓶两空瓶换一瓶的基础条件下可以根据上述规律将代码修改
int main()
{int money 0;scanf(%d, money);int total 0;if (money 0)total 2 * money - 1;printf(可以喝%d瓶\n, total);return 0;
} 2.边买边换 第二种解题思路是 得到初始的金钱n后优先用空瓶子去换汽水当空瓶子不够时再花钱买一瓶。重复上面的过程直到没钱以及空瓶子小于2 2.1 代码逻辑
放到编程中来讲
① 首先创建变量n读入初始金额n
②接着创建变量total用于记录可喝汽水数量初始等于0 创建变量empty用于记录当前空瓶子数量初始等于0 ③然后进入while循环循环的条件是金钱0,或者空瓶2 循环内部每一次循环完成判断—— 先判断如果空瓶子2,可喝汽水数量1空瓶子-2 如果空瓶子不够换可喝汽水数量1金钱-1
当循环结束之后得到的total就是可以喝的汽水总数 2.2 完整代码
//方法二
#includestdio.h
int main()
{int money 0;scanf(%d, money);int total 0;int empty 0;while ((money 0)||(empty2)){if (empty 2)//有空瓶时用瓶换{total;empty-2;}else //没空瓶时用钱买{total;money--;}empty; //得到一瓶时空瓶1}printf(可以喝%d瓶\n, total);return 0;
}
2.3 运行结果
使用方法二和方法一的效果相同 创作不易还望点赞支持。如有错误还望提醒更正。