吃巧克力

问题描述

 输入格式

 输出格式

 样例输入

4

样例输出

5

题解

萌新一天可以吃一块或两块巧克力,问萌新吃完N块巧克力的方案数

设f[i]表示吃完n块巧克力的方案数

由题干知 f[1]=1,  f[2]=2

对于i>2,假设萌新今天吃完了i块巧克力,并且已经算出f[1]到f[i-1]的值

如果今天萌新吃一块巧克力,那么到昨天为止一共吃了i-1块巧克力,有f[i-1]种方案

如果今天萌新吃两块巧克力,那么到昨天为止一共吃了i-2块巧克力,有f[i-2]种方案

所以今天吃完i块巧克力的方案数为两种情况的方案数之和,即f[i]=f[i-1]+f[i-2]

 1 #include  <stdio.h>
 2 
 3 int f[50];
 4 int Func(int n)
 5 {
 6     f[1]=1;  f[2]=2;
 7     int i;
 8     for (i=3;i<=n;i++)
 9       f[i]=f[i-1]+f[i-2];
10     return f[n];
11 }
12 
13 int  main( )
14 {
15     int n;
16     scanf("%d",&n);
17     printf("%d
",Func(n));
18     return  0;
19 }
原文地址:https://www.cnblogs.com/rabbit1103/p/13931631.html