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

【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水

题目内容

喝汽水问题

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。

题目分析

数学思路分析

根据给出的问题和引用内容,我们可以得出答案。

首先,我们用20元购买了20瓶汽水,现在有20个空瓶。

接下来,我们将这20个空瓶兑换成新的10瓶汽水

然后,将这10个空瓶再次兑换成新的5瓶汽水,此时还剩下一个空瓶。

我们将这个剩余的空瓶与后面的空瓶结合兑换,得到1瓶新的汽水

因此,到目前为止,我们总共获得了20+10+5+2+1+1=39瓶汽水。

所以,给了20元我们可以喝到39瓶汽水。

编程思路分析

思路一 循环实现

total = 20;  //汽水总数
    int k = 0;     //空瓶数
    int s = 0 ;     //剩余空瓶

第一次(k=20)。

第二次(k=20/2=10,s=20%2=0),此时total又增加10了;

第三次(k=10/2=5,s=10%2=0);

第四次(k=5/2=2, s=5%2=1,);

第五次(k=2/2=1,s=2%2=0);

(s=1)。

#include<stdio.h>
#include<stdlib.h>
int main()
{int total = 20;  //汽水总数int k = 0;     //空瓶数int s = 0 ;     //剩余空瓶k = 20;while(k>=1){k= k+s;total = total+k/2;//原有的汽水数+换来的汽水数s = k%2;k=k/2;//两个空瓶子换1个新汽水,汽水喝完就是1个瓶子}printf("%d\n",total);system("pause");return 0;
}

思路二 递归实现

第一次和第二次买汽水 ,分别花了一块钱(+2),

从第三次开始,每次去花一块钱买汽水,再加上用第一次和第二次的空瓶子可以换来一瓶,一共可以获得两瓶汽水(+2),

第四次拿着第三次那两空瓶子,再花一块钱,又可以得到两瓶汽水(+2),

第五次,第六次,以此类推,接下来的每一次都是相当于花1元钱和两个空瓶子,来获得两瓶新的汽水

那么到最后一次时,手里已经没有钱了,即此时只有两个空瓶子换来一瓶汽水(+1)。

去买汽水的过程定义为一个函数就可以递归计算最终结果。

#include<stdio.h>
#include<stdlib.h>
int  Buy(int money)
{if(money==1)return 1;else return Buy(money-1)+2;
}
int main()
{int money = 20;printf("%d\n",Buy(money));system("pause");return 0;
}


 

http://www.lryc.cn/news/142974.html

相关文章:

  • P1591 阶乘数码(Java高精度)
  • Mybatis的动态SQL及关键属性和标识的区别(对SQL更灵活的使用)
  • mysql下载
  • 聚合函数与窗口函数
  • c语言实现堆
  • ubuntu 如何将文件打包成tar.gz
  • 前端优化页面加载速度的方法(持续更新)
  • 利用SSL证书的SNI特性建立自己的爬虫ip服务器
  • HTML和CSS
  • C#的IndexOf
  • 深度学习2.神经网络、机器学习、人工智能
  • 利用LLM模型微调的短课程;钉钉宣布开放智能化底座能力
  • 软件工程(七) UML之用例图详解
  • pd.cut()函数--Pandas
  • DataBinding的基本使用
  • eslint和prettier格式化冲突
  • matlab使用教程(26)—常微分方程的求解
  • 尚硅谷宋红康MySQL笔记 14-18
  • 香港全新的虚拟资产服务商发牌制度
  • C# 泛型
  • servlet,Filter,责任的设计模式,静态代理
  • C++中的运算符总结(5):按位运算符(上)
  • 8.Oracle中多表连接查询方式
  • Linux 安装mysql(ARM架构)
  • git:git clone报错提示permissions xxxx for xxxxxx are too open
  • elasticSearch数据的导入和导出
  • DDR PHY
  • XSS攻击是怎么回事?记录一下
  • FFmpeg支持多线程编码并保存mp4文件示例
  • 一文搞懂深度信念网络!DBN概念介绍与Pytorch实战