C ++ / C язык Треугольник Паскаля (подробно объяснить).

Треугольник Паскаля в форме, как показано ниже

Here Вставка рисунка Описание
Но есть ли способ играть в этой карте?
Мы можем заполнить все вакансии к нулю и найти закон.

0 после заполнения зазоров, как показано на фиг.

Here Вставка рисунка Описание
Here Вставка рисунка Описание
Положим число строк и столбцов устанавливаются в г и с;

На рисунке выше мы можем найти:

При г = 4, с = 9;

При г = 7, с = 15;

Такие законы могут быть получены;

с = 2 * г + 1 и в первой строке первого номера индекса округляется вниз, чтобы дать с / 2

Кроме того, мы также можем видеть:
два числа ряда этой косой линии предыдущей строки и суммы.
Если номер используется для хранения всей матрицы [R] [с], этот массив, I, J, соответственно , для строк и столбцов, это правило может быть получено:

матрица [I] [J] = матрица [I-1] [J-1] + матрица [I-1] [J + 1].

Код может быть получен следующим образом:

#include<bits/stdc++.h>
using namespace std;
int main() {
//	int r,c;//分别表示r行和c列。
	int r,c;
	cin>>r;
	c=2*r+1;//列数与行数的关系。
	int r_one=c/2;//第一行的第一个数。(以第一行的第一个数为起点)
	int matrix[r][c]; //把所有r行c列的所有点都标为0。
	memset(matrix,0,sizeof(matrix));//这里是把二维数组所有项都初始化为零
	matrix[0][r_one]=1;
	for(int i=1; i<r; i++) {
		for(int j=1; j<c; j++) {
			matrix[i][j]=matrix[i-1][j-1]+matrix[i-1][j+1];
		}
	}
	for(int i=0; i<r; i++) {
		for(int j=0; j<c; j++) {
			if(matrix[i][j]==0)
				printf(" \t");
			else
				printf("%d\t",matrix[i][j]);
		}
		cout<<endl;
	}
	return 0;
}

Возьмите в цвете.

Освобожденные восемь оригинальных статей · вона похвала 8 · просмотров 200

рекомендация

отblog.csdn.net/xzy15703841578/article/details/105375798