n层楼梯,可以1次上2阶,或1阶,问有多少种方法走楼梯。
View Code
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n; 6 int *array; 7 void calculate(int n,int *array,int i); 8 printf("input:\n"); 9 scanf("%d",&n); 10 array=(int*)malloc(sizeof(int)*n); 11 calculate(n,array,0); 12 free(array); 13 return 0; 14 } 15 16 void calculate(int n,int *array,int i) 17 { 18 int j; 19 if(n<=0) 20 { 21 if(n==0) 22 { 23 for(j=0;j<i;j++) 24 printf("%d ",array[j]); 25 } 26 printf("\n"); 27 return; 28 } 29 array[i]=1; 30 calculate(n-1,array,i+1); 31 array[i]=2; 32 calculate(n-2,array,i+1); 33 return; 34 }