吃糖果问题C++
2020-01-15 06:15
1136 查看
问题描述
名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。
妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。
分析:
该题的问题是问有多少种不同的吃完巧克力的方案,而不是需要多少天的问题,所以天数只起迷惑作用。
我们假设盒内有1块巧克力,每次吃1或2块,求方法数;假设有2块巧克力,每次吃1或2块,求方法数;假设有3块巧克力,每次吃1或2块…类比下去会发现这个题就是走台阶问题(对于走台阶问题应该是比较熟悉的),巧克力数就是台阶数,每次能迈1或2阶。
巧克力数 | 方法数 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 5 |
… | … |
可得递推式: f(n) = f(n-1)+f(n-2)
编程如下:
#include <iostream> using namespace std; int main() { int n; //糖果数 cin>>n; int a[100] = {0}; //存储方法数 a[1] = 1; a[0] = 1; for(int i=2;i<=n;i++){ a[i] = a[i-1]+a[i-2]; } cout<<a[n]<<endl; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C++实现——小孩分糖果问题
- C++ 分糖果问题-求一组数的最大公倍数
- ubuntu x64下编译出现找不到 cdefs.h / c++config.h 的问题
- C++ 输入ctrl+z 不能再使用cin的问题
- C++的一些字节问题
- [Windows问题-2] vs2012警告未能加载包“visual c++ package”
- C++中基础类互相引用带来的问题
- 【贪心算法】背包问题 C++
- C++复习(4):有关const的一系列问题
- c/c++运算顺序问题
- C/C++中的字符串处理问题
- 关于“用VS2010的C++导入ADO导入不了,提示无法打开源文件msado15.tlh”的问题
- C++里关于类的函数问题~
- 问题十六:每位同学的信息学号、姓名、C++、高数、英语成绩,定义一个学生成绩的结构体数组。
- 关于C++调用jar包,在创建虚拟机时使用JNI_CreateJavaVM调用失败返回-1的问题
- C和C++ 读写文件速度问题
- C++字符串string输出问题
- C++字符串输入流的问题
- C++内存分配问题
- Dev-C++ Link 问题