递归练习题
(一)
输入 n 值, 使用递归函数,求杨辉三角形中各个位置上的值,按照如下形式打印输出图形。
例如:当 n=6 时。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
1 #include <stdio.h> 2 3 // 递归求杨辉三角形 4 int YHtrangle(int row,int col) 5 { 6 if (col == 0 || col == row){ 7 return 1; 8 } 9 else{ 10 return YHtrangle(row-1,col-1)+YHtrangle(row-1,col); 11 } 12 } 13 int main() 14 { 15 int i,j,n; 16 printf("Please input number of row:"); 17 scanf("%d",&n); 18 for (i=0; i<n; i++){ 19 for (j=0; j<=i; j++){ 20 printf("%d ",YHtrangle(i,j)); 21 } 22 } 23 return 0; 24 }
(二)
编写一个求菲波那奇数列的递归函数,输入 n 值,使用该递归函数,输出如下图形。
1 #include <stdio.h> 2 3 // 递归求斐波那契数列 4 int Fibonacci(int n) 5 { 6 if (n == 0 || n == 1){ 7 return n; 8 } 9 else{ 10 return Fibonacci(n-2)+Fibonacci(n-1); 11 } 12 } 13 int main() 14 { 15 int i,n; 16 printf("Please input number of Fibonacci:"); 17 scanf("%d",&n); 18 for (i=0; i<n; i++){ 19 printf("%d ",Fibonacci(i)); 20 } 21 return 0; 22 }