打印杨辉三角形的前n(2≤n≤20)行:
当n=5时
输出:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
题解代码:
#include<stdio.h>
#define N 20
void triangleYh(int arr[][N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(j==0 || i==j)//判断j==0地址及i==j的地址
arr[i][j]=1;
else
arr[i][j]=arr[i-1][j] + arr[i-1][j-1];//核心公式
}
}
}
void is_printf(int arr[][N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%4d",arr[i][j]);
}
printf("\n");
}
}
int main()
{
int n,arr[N][N] = {0};
printf("input n (n<=20):");
scanf("%d",&n);
triangleYh(arr,n);
is_printf(arr,n);
return 0;
}