首页 > 斐波那契算法举例(iterative Fibonacci algorithm)

斐波那契算法举例(iterative Fibonacci algorithm)

// count_change.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

/*-------------------------------------------------------------

实例:要想得到一个迭代的斐波那契算法需要一点点智慧。

给了半美元、四分之一美元、10美分、5美分、1美分的硬币,将1美元换成零钱,一共有多少中不同的方式?

更一般的问题时,给定了任意数量的现金,我们能写出一个程序,计算出所有换零钱方式的种数吗?

采用递归过程,这一过程有一种很简单的解法。假定我们所考虑的可用硬币类型种类排了某种顺序,于是就有下面的关系:

将总数为a的现金换成n中硬币的不同方式的数目等于

1.将现金数a换成除第一种硬币之外的所有其它硬币的不同方式数目,加上

2.将现金数a-d换成所有种类的硬币的不同方式数目,其中的d是第一种硬币的币值。


---------------------------------------------------------------*/

int first_denomination(int kinds_of_coins)

{

 if (1 == kinds_of_coins)

 {

  return 1;

 }

 else if(2 == kinds_of_coins)

 {

  return 5;

 }

 else if(3 == kinds_of_coins)

 {

  return 10;

 }

 else if(4 == kinds_of_coins)

 {

  return 25;

 }

 else if(5 == kinds_of_coins)

 {

  return 50;

 }

}

int cc(int amount, int kinds_of_coins)

{

 if (0 == amount)

 {

  return 1;

 }

 else if ((amount < 0) || (0 == kinds_of_coins))

 {

  return 0;

 }

 else

 {

  return ( ( cc(amount, kinds_of_coins-1) )+

     ( cc(amount-first_denomination(kinds_of_coins), kinds_of_coins))

     );

 }

}

int _tmain(int argc, _TCHAR* argv[])

{

 int n = cc(100, 5);

 return 0;

}

 

更多相关:

  • Note 6 Mitigating the Curse of Dimensionality 减轻维度诅咒6. Mitigating the Curse of Dimensionality 减轻维度诅咒6.1 状态-动作总成本,即QQQ函数 The state-action total cost, aka. the QQQ functi...

  • Note 4 - Policy Iteration Algorithms4. Policy Iteration Algorithms补充:范数的性质4.1 贪婪诱导策略的特性 (Properties of Greedily Induced Policy)Proposition 4.1 贪婪诱导策略的直接误差边界 (Direct err...

  • Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace –Kitsune 4.26狐狸女孩 大小解压后:569M 可爱的Kitsune的3D模型。装配到史诗骷髅。完全模块化,包括无衣服的身体。包含不同的发型。通过材质实例轻松改变颜色。包含与Live Link Face应用程序兼容的苹果混合...

  • 参考3GPP 36.331 – 5.2.1.2Scheduling The SystemInformationBlockType1 uses a fixed schedule with a periodicity of 80 msand repetitions made within80 ms. Thefirst transmiss...