一个人上楼,他有两种走法,走一阶或走两阶,问他上N阶楼梯有几种走法?

来源:互联网 发布:闪电网络货币代码 编辑:程序博客网 时间:2024/04/30 07:55
#include "stdafx.h" int f(int n) {    if(n==1)  {     return 1;   }  else if(n==2)  {     return 2;  }  else  {     return f(n-1)+ f(n-2);  } }int _tmain(int argc, _TCHAR* argv[]){int n;while(1){printf("请输入n");scanf("%d",&n);printf("%d\n",f(n));}return 0;}


经过阿泽同学的指导,发现上面那个算法不可行,运算时间过长

修改过后如下

// demo2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"double m[100]={0.0}; double f(int n) {    if(n==1)  {     return 1.0;   }  else if(n==2)  {     return 2.0;  }  if(m[n]>0)  return m[n];  return  m[n]=f(n-1)+ f(n-2); }int _tmain(int argc, _TCHAR* argv[]){int n;while(1){printf("请输入n");scanf("%d",&n);printf("%.0f\n",f(n));}return 0;}


 

原创粉丝点击