用递归实现杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
2020-03-22 16:17
程序代码:#include <stdio.h>
int main()
{
int i ,j,row ;
int a[100][100]={0};
printf("请输入行数:");
scanf("%d",&row);
for(i=0;i<row;i++)
{
for(j=0;j<i+1;j++)
{
if(j==0||j==i)
{
a[i][j]=1;
}
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
printf("%d ",a[i][j]);
}
printf("\n");
}
}
2020-03-22 16:48
程序代码:#include <stdio.h>
void printtriangle(int* arr, int lev, int end)
{
if(lev == end)
return;
arr[lev++] = 1;
for(int i=0; i<lev; ++i)
printf("%8d", arr[i]);
arr[lev] = 0;
for(int i=lev; i>0; --i)
arr[i] += arr[i-1];
puts("");
printtriangle(arr, lev, end);
}
void triangle(int end)
{
int arr[100];
printtriangle(arr, 0, end);
}
int main(int argc, char *argv[])
{
triangle(5);
return 0;
}
[此贴子已经被作者于2020-3-22 19:17编辑过]

2020-03-22 19:14
程序代码:#include <stdio.h>
int fun(int m,int n)
{
if(m==1||n==1||m==n)return 1;
return fun(m-1,n)+fun(m-1,n-1);
}
void main()
{
int i,j,n=8;
for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)printf(" "); //按等腰三角形格式输出
for(j=0;j<=i;j++)printf("%2d ",fun(i+1,j+1));
printf("\n");
}
}
[此贴子已经被作者于2020-3-23 00:50编辑过]

2020-03-23 00:11
2020-03-23 01:36