首页 > 试题广场 >

吃糖果

[编程题]吃糖果
  • 热度指数:15338 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。 妈妈告诉名名每天可以吃一块或者两块巧克力。 假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。 例如: 如果N=1,则名名第1天就吃掉它,共有1种方案; 如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案; 如果N=3,则名名第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名共有2+1=3种方案; 如果N=4,则名名可以第1天吃1块,剩3块,也可以第1天吃2块,剩2块,共有3+2=5种方案。 现在给定N,请你写程序求出名名吃巧克力的方案数目。

输入描述:
输入只有1行,即整数N。


输出描述:
可能有多组测试数据,对于每组数据,
输出只有1行,即名名吃巧克力的方案数。
示例1

输入

4

输出

5
头像 苇岸弦歌
发表于 2023-03-02 14:07:39
n块的吃法可分解为两个子问题:即第一天吃1块,剩下n-1块如何吃;第一天吃2块,剩下n-2块怎么吃。用数学递推方式表示为a(n)=a(n-1)+a(n-2)(且n>=3) #include <iostream> using namespace std; int main() { 展开全文
头像 TomatoHead
发表于 2024-03-15 14:24:44
原理同上台阶问题 #include <iostream> #include <cstdio> #include <vector> #include <string> #include <set> using namespace std; i 展开全文
头像 viod
发表于 2021-12-26 22:21:33
做题要学会冷静分析,除了模拟之外,很多题目的答案可以通过分析推导得到基于数学规律的表达式,节省时间开销。 本题中: N=1结果为1, N=2结果为2, N=3结果为3, N=4结果为5, N=5结果为8, N=6结果为13......通过简单分析推导可知规律相似于斐波那契数列 #include&l 展开全文
头像 山清水秀疑无路
发表于 2022-03-08 20:02:02
献丑了 #include<iostream> using namespace std; int PC=0; void getPC(int c){ if(c==0) PC=PC+1; else{ if(c>0){ // 展开全文
头像 yyer
发表于 2023-01-11 23:32:41
#include <iostream> using namespace std; const int maxn=21; long long f[maxn]={0}; int main() { int n; for(int i=1;i<=maxn;i++){ 展开全文
头像 牛客440904392号
发表于 2024-09-29 13:22:18
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n 展开全文
头像 宁静的冬日
发表于 2022-03-06 13:15:16
C++ ">#include<string> #include<algorithm> using namespace std; #define MAX 100 int dp[21]; void initDpArray() { dp[1] = 1; dp[2] = 2; 展开全文
头像 用户抉择
发表于 2021-03-28 12:08:01
#include <stdio.h> int main(){     int n,i;     while(scanf("%d",&n)!=EOF){  &nb 展开全文
头像 拒绝内卷plus
发表于 2024-03-06 14:46:53
#include <stdio.h> int fun(int n) { if(n==1)return 1; if(n==2)return 2; return fun(n-1)+fun(n-2); } int main() { int n; wh 展开全文
头像 T790T
发表于 2024-07-27 08:54:49
#include <iostream> using namespace std; int eat(int n) { if(n == 1) return 1; else if(n==2) return 2; else return eat(n-1)+eat(n- 展开全文