c语言打印杨辉三角

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#pragma GCC optimize(1)
//#pragma GCC optimize(2)
//#pragma GCC optimize(3,"ofast","inline")
#define ifor(i, l, r) for (int  i = l; i <= r; ++i)
#define rfor(i, r, l) for (int i = r; i >= l; --i)
#define _SILENCE_CXX20_CISO646_REMOED_WARNING
typedef unsigned long long ull;
typedef long double doubleL;
typedef long long ll;

int main()
{
	int m;
	scanf("%d", &m);
	int a[100][100];
    //先不考虑正三角形的杨辉三角,也就是先不输出空格,让对角线和第一列全为1
	ifor(i, 1, m)
	{
		a[i][i] = a[i][1] = 1;
	}

	ifor(i, 1, m)
	{
		ifor(k, 1, m - i)
		{
			putchar(' ');
		}
		ifor(j, 1, i)
		{
			if (j == i || j == 1)
			{
				printf("%4d", a[i][j]);
				continue;
			}
			a[i][j] = a[i - 1][j-1] + a[i - 1][j];
			printf("%4d", a[i][j]);
		}
		puts("");
	}
	return(0);
}

posted @ 2022-12-07 23:17  noob-lian  阅读(128)  评论(0)    收藏  举报
Language: