采用递归的方法输出杨辉三角的前10行
1
/*该程序采用递归的方法输出杨辉三角的前10行*/
2
#include<stdio.h>
3
#define N 10/*打印的行数*/
4![]()
5
int 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![]()
21
int 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![]()
/*该程序采用递归的方法输出杨辉三角的前10行*/2
#include<stdio.h>3
#define N 10/*打印的行数*/4

5
int 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

21
int 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



浙公网安备 33010602011771号