杨辉三角
在屏幕上打印杨辉三角。
1
1 1
1 2 1
1 3 3 1
…
- 找出规律第一列和第i=j列的值恒为1
- 例如第三行的第二列的值为第二行第二列的值加上前一个数的值
- 利用二维数组可轻松解决问题
上代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#include<time.h>
#include<Windows.h>
/*1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
*/
#define max 10
void sanjiao(int arr[][max]) {
for (int i = 0; i <max; i++)
{
for (int j = 0; j < i; j++)
{
if (j == 0||i==j) {
arr[i][j] = 1;
}
else {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
}
void printangle(int arr[][max]) {
for (int i = 0; i <max ; i++)
{
for (int j = 0; j < i; j++)
{
printf("%-3d",arr[i][j]);
}
printf("\n");
}
}
int main()
{
int arr[max][max] = {0};
sanjiao(arr);
printangle(arr);
system("pause");
}