FreeFoxCM

采用递归的方法输出杨辉三角的前10行

 

 1/*该程序采用递归的方法输出杨辉三角的前10行*/
 2#include<stdio.h>
 3#define N 10/*打印的行数*/
 4
 5int main(void)
 6{
 7 int i,j;
 8
 9 for(i=0;i<=N;i++/*控制输出N行*/
10 {
11  /*for(j=0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
12  for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
13  
14   printf("\n");
15  }

16 }

17
18 return 0;
19}

20
21int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
22{
23 int z;
24 if((y==1)||(y==x+1)) return 1/*若为x行的第1或第x+1列,则输出1*/
25  z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
26 
27 return z;
28}

29/* CopyRight @2006 FreeFox All right reserved */
30

posted on 2008-06-17 15:11  FreeFox  阅读(1245)  评论(0编辑  收藏  举报