C ++ / C lenguaje triángulo de Pascal (explique en detalle).

El triángulo de Pascal en la forma como se muestra a continuación

Aquí Insertar imagen Descripción
Pero ¿hay alguna manera de jugar este mapa?
Podemos llenar todas las vacantes a cero, y para encontrar la ley.

0 después de lagunas de relleno como se muestra en la figura.

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Ponemos el número de filas y columnas se establece en R y C;

En la figura anterior podemos encontrar:

Cuando r = 4, c = 9;

Cuando r = 7, c = 15;

Tales leyes pueden obtenerse;

c = 2 * r 1 y la primera línea de un primer número de índice es abajo redondeado para dar c / 2

Además, también podemos ver:
dos números de una serie de éstos línea oblicua de la fila anterior y la suma.
Si el número utilizado para almacenar toda la matriz [r] [c], esta matriz, i, j, respectivamente, para las filas y columnas, esta regla se puede obtener:

matriz [i] [j] = matriz [i-1] [j-1] + matriz [i-1] [j + 1].

El código se puede obtener como sigue:

#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;
}

Tome en flor.

Publicado ocho artículos originales · ganado elogios 8 · visitas 200

Supongo que te gusta

Origin blog.csdn.net/xzy15703841578/article/details/105375798
Recomendado
Clasificación