台阶问题(1or2)
来源:互联网 发布:保湿水推荐 知乎 编辑:程序博客网 时间:2024/05/20 08:23
方案一:用递归实现(用递归可以将问题分解成规模更小的问题)
#include <stdio.h>
int fun(int m)
{
if(m==0)
return 1;
if(m==1)
return 1;
return fun(m-1)+fun(m-2);
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m;
scanf("%d",&m);
if(m==1)
printf("0\n");
else
printf("%d\n",fun(m-1));
}
return 0;
}
int fun(int m)
{
if(m==0)
return 1;
if(m==1)
return 1;
return fun(m-1)+fun(m-2);
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m;
scanf("%d",&m);
if(m==1)
printf("0\n");
else
printf("%d\n",fun(m-1));
}
return 0;
}
上面这种方案会超时
方案二 斐波那契数列当m=1时,要特别分出,其他就是斐波那契数列
#include <stdio.h>
int main()
{
int i,n;int a[41];
a[1]=0,a[2]=1;a[3]=2;
for(i=4;i<41;i++)
a[i]=a[i-1]+a[i-2];
scanf("%d",&n);
while(n--)
{
int m;
scanf("%d",&m);
if(m==1)
printf("0\n");
else
printf("%d\n",a[m]);
}
return 0;
}
阅读全文
0 0
- 台阶问题(1or2)
- 台阶问题1
- (洛谷1192)台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 台阶问题
- 使用postman模拟与后端flask的Get/Post数据交互
- HTML——列表标签
- hbase regionLocator 获取region过程
- 最好的6个Go语言Web框架
- 关于 xftp工具 远程连接虚拟机 失败>>>>>>>>Sftp和ftp 区别、工作原理等(汇总)
- 台阶问题(1or2)
- 读《批判性思维》续
- leetcode 406. Queue Reconstruction by Height 人群高度排序
- C++命名空间 namespace的作用和使用解析
- 一个32岁入门的70后程序员给我的启示
- 表达式转换(25 分)(栈的应用)
- 使用logstash输出到elasticsearch中文乱码的解决方案
- 十个Chatbot框架介绍
- 课程小结——SURF特征提取