当前位置: 首页 > news >正文

建设规划展览馆网站的优势网络建设费用

建设规划展览馆网站的优势,网络建设费用,网站导航是做链接赚钱么,广州网站导航文章目录 一、文章简介 1.先买再换 1.1 代码逻辑: 1.2 完整代码 1.3 运行结果 1.4 根据方法一总结优化 2.边买边换 2.1 代码逻辑: 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 完整代码
//喝汽水问题
//方法一
#include<stdio.h>int 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之间存在着一定规律

n=5,total=9

n=6,total=11

n=7,total=13

n=8,total=15

没错,total=2*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 完整代码
//方法二
#include<stdio.h>
int main()
{int money = 0;scanf("%d", &money);int total = 0;int empty = 0;while ((money > 0)||(empty>=2)){if (empty >= 2)//有空瓶时用瓶换{total++;empty-=2;}else           //没空瓶时用钱买{total++;money--;}empty++;  //得到一瓶时空瓶+1}printf("可以喝%d瓶\n", total);return 0;
}
2.3 运行结果

使用方法二和方法一的效果相同

创作不易,还望点赞支持。如有错误,还望提醒更正。

http://www.yayakq.cn/news/231604/

相关文章:

  • 用vue框架做的网站做网站的困难
  • 人员调动在网站上怎么做移动端商城网站开发
  • 方庄网站建设公司涿州市网站建设
  • 企业网站素材图片网站建设 销售 知乎
  • 小企业网站维护一年多少钱有专业做网站优化的吗
  • 网站建设公司专业公司排名扬州网站建设企业
  • 网站正在建设中 html代码商城类网站和o2o网站
  • rails网站开发怎么做竞价托管
  • 老板让我做镜像网站犯法吗长治网站设计制作网站
  • 2019建设银行招聘网站小程序代理注册
  • 广州一起做网站培训网站完整页面
  • 设计方案网站php 图片上载 wordpress
  • 青岛做网站哪家公司好百度快速排名 搜
  • 曲靖做网站建设的公司滁州做网站的公司
  • 2017年做那个网站致富福州外包seo公司
  • 广西网站开发wordpress怎么修改数据库配置文件
  • 长沙网站快速优化排名36氪网站是用什么做的
  • 较成功营销网站的例子北京梦创义网站建设
  • 昆明专业网站排名推广嵩县网站建设
  • 柏乡县建设局网站十堰seo优化分析
  • 国外手机主题网站广州做网站海珠新科
  • 数码网站建设的规模与类别公司网站应达到的功能
  • 支付宝签约网站wordpress网站顶部加横幅
  • 网站为什么做微云的采集wordpress 飞龙博客 许愿墙
  • 个人游戏网站备案杭州建设厅官网
  • 吉林平台网站建设推荐奉贤网站建设推广
  • 东莞寮步网站设计域名注册了是永久的吗
  • 网站建设app开发合同济南网站建设(力选聚搜网络)
  • 天安云谷网站建设专业网站制作企业
  • 网站优化排名教程高端装修公司怎么获客