zoukankan      html  css  js  c++  java
  • 吃巧克力

    问题描述

     输入格式

     输出格式

     样例输入

    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 }
  • 相关阅读:
    C#
    C#
    C#
    创建一个ROS包
    创建一个工作空间
    ROS的文件系统
    单一职责原因
    策略模式
    UML类图
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/rabbit1103/p/13931631.html
Copyright © 2011-2022 走看看