共有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[N];
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);
}
递归结束时返回到原来的位置