c ++ / c linguagem triângulo de Pascal (explicar em detalhe).

triângulo de Pascal na forma como mostrado abaixo

Aqui Insert Picture Descrição
Mas há alguma maneira de jogar este mapa tarefas?
Podemos preencher todas as vagas para zero, e para encontrar a lei.

0 depois de lacunas de enchimento, como mostrado na FIG.

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Nós colocamos o número de linhas e colunas estão definidas para R e C;

Na figura acima, podemos encontrar:

Quando r = 4, c = 9;

Quando r = 7, c = 15;

Tais leis podem ser obtidos;

c = 2 * r 1 e a primeira linha de um primeiro número de índice está em baixo arredondado para dar c / 2

Além disso, também podemos ver:
dois números de um número destes linha oblíqua da linha anterior e a soma.
Se o número utilizado para armazenar toda a matriz [r] [C], esta matriz, i, j, respectivamente, para as linhas e colunas, esta regra pode ser obtido:

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

O código pode ser obtido como se segue:

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

Leve em flor.

Lançado oito artigos originais · ganhou elogios 8 · vista 200

Acho que você gosta

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