典型遞迴問題--爬樓梯
阿新 • • 發佈:2019-01-08
共有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);
}
遞迴結束時返回到原來的位置