triângulo de Pascal na forma como mostrado abaixo
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.
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.