典型递归问题--爬楼梯
2016-03-22 21:31
204 查看
共有10个台阶,每次只能走1,2,3这三种,问刚有多少上楼的方法并打印出来
例,四层楼梯时
1 1 1 1
1 1 2
1 2 1
1 3
2 1 1
2 2
3 1
代码
#include <stdio.h>
#include <stdlib.h>
#define N 10
int steped
;
int i=0;
void steping(int n)
{
if(n==0)
{
for(int j=0;j<i;j++)
printf("%d ",steped[j]);
printf("\n");
}
if(n>=1)
{
steped[i++]=1;
steping(n-1);
i--;
}
if(n>=2)
{
steped[i++]=2;
steping(n-2);
i--;
}
if(n>=3)
{
steped[i++]=3;
steping(n-3);
i--;
}
}
void main()
{
int n;
n=N;
steping(n);
}
递归结束时返回到原来的位置
例,四层楼梯时
1 1 1 1
1 1 2
1 2 1
1 3
2 1 1
2 2
3 1
代码
#include <stdio.h>
#include <stdlib.h>
#define N 10
int steped
;
int i=0;
void steping(int n)
{
if(n==0)
{
for(int j=0;j<i;j++)
printf("%d ",steped[j]);
printf("\n");
}
if(n>=1)
{
steped[i++]=1;
steping(n-1);
i--;
}
if(n>=2)
{
steped[i++]=2;
steping(n-2);
i--;
}
if(n>=3)
{
steped[i++]=3;
steping(n-3);
i--;
}
}
void main()
{
int n;
n=N;
steping(n);
}
递归结束时返回到原来的位置
相关文章推荐
- 表格组件列属性formatter和styler使用方法
- struts自定义类型转换器,局部和全局
- crm服务调用测试
- parseSdkContent failed Could not initialize class android.graphics
- OSI七层模型的每一层都有哪些协议
- Tomcat7 starts too late on Ubuntu 14.04 x64 [Digitalocean]
- mysql 转发自 WhyWin
- C++智能指针简单剖析
- [android] smartimageview&常见的开源代码
- JS中关于函数调用的问题
- 第三次
- 连续因子
- 希望到2016.9.22前能完成一篇angualr结构的详解。
- 图解Javascript上下文与作用域
- CM 人物分析
- [leetcode 216] Combination Sum III ------组合数的和(回溯法)
- Unity3D使用指定动态字体,导致打包的时候包的体积增大的解决办法
- java基础回顾笔记-io流2
- STL map 的基本成员函数
- Appium——处理混合APP中H5的操作