Programa de origem revela
Propriedades do triângulo de Yang Hui:
Cada linha de números é simétrica à esquerda e à direita, a partir de 1 gradualmente se torna maior, depois se tornando menor e retornando a 1.
O número de números na linha n é n.
A soma dos números na linha n é 2^(n-1).
Cada número é igual à soma dos números esquerdo e direito da linha anterior. Esta propriedade pode ser usada para escrever todo o triângulo Yang Hui.
O primeiro número na linha n é 1, o segundo número é 1 × (n-1), o terceiro número é 1 × (n-1) × (n-2) /2, e o quarto número é
1 × (n-1) × (n-2) /2 × (n-3) /3… e assim por diante.
Princípio 1 do algoritmo:
Use uma matriz bidimensional YH [] [] para armazenar os dados do triângulo Yang Hui. O tamanho das linhas e colunas é o número de linhas que precisam ser emitidas (a linha é 10 neste programa).
Use o loop for para criar o número, exceto a camada mais externa (excluindo a borda inferior do triângulo Yang hui) no triângulo Yang hui é 1;
Use a afirmação yh [i] [j] = yh [i - 1] [j - 1] + yh [i - 1] [j] para fazer os dados na coluna J da linha j igual à soma dos dados na coluna (J -1) da linha (i -1) e a coluna (J) da linha (I -1), que é o número igual à soma da soma da soma da esquerda e da direita da direita e da direita da soma da soma e direita da soma da soma e direita da soma e direita da soma da soma e direita da soma da soma e direita da soma e direita da soma e direita da soma da soma e da direita e a linha da direita e da linha da direita.
pacote com.work; classe pública yanghuisanjiao {public static void main (string [] args) {int [] [] a = new int [10] [10]; for (int n = 0; n <10; n ++) {a [n] [0] = 1; a [n] [n] = 1; } para (int n = 2; n <10; n ++) {for (int j = 1; j <n; j ++) {a [n] [j] = a [n -1] [j -1]+a [n -1] [j]; }} para (int n = 0; n <10; n ++) {for (int k = 0; k <2 * (10 - n) - 1; k ++) {System.out.print (""); } para (int j = 0; j <= n; j ++) {System.out.print (a [n] [j]+""); } System.out.println (); }}}Método 2
pacote com.face; importar java.util.scanner; classe pública yanghui {public static void main (string [] args) {printyftriangle (); } <pré -code_snippet_id = "2474965" snippet_file_name = "blog_20170708_2_9005712" name = "code"> <code> <span>/** ** ** ** para entender a seguinte implementação, primeiro você deve entender que o valor de um elemento em que o elemento * O elemento original nessa posição + o valor da posição anterior desta posição*/</span> </code> </pre> public static void printyftriangle () {System.out.println ("Yang hui Triangle, o número de linhas que você está preparando para a saída:"); Scanner input = new Scanner (System.in); int linhas = input.NextInt (); // Obtenha o número de linhas do loop; int [] a = new int [linhas + 1]; // armazenar temporariamente dados; int anterior = 1; // Primeiro número padrão; for (int i = 1; i <= linhas; i ++) {// i é usado para controlar o número de linhas; for (int j = 1; j <= linhas-i; j ++) {// Espaço de saída, muito fácil; System.out.print (""); } para (int j = 1; j <= i; j ++) {int current = a [j]; // Obtenha o próximo número primeiro, a [j] = anterior+current; anterior = atual; System.out.print (a [j] + ""); } System.out.println (); }}}Método 3: Implementação recursiva
pacote com.face; importar java.util.scanner; public class DiGui {static int Fun (int n, int k) {// n, linha, k: coluna if (k == 1 || n == k) return 1; caso contrário, retorne diversão (n-1, k-1)+diversão (n-1, k); } public static void main (string [] args) {int lines; System.out.println ("Por favor, insira o número de linhas:"); Scanner input = new Scanner (System.in); linhas = input.NextInt (); for (int i = 1; i <= linhas; i ++) {for (int k = 1; k <linhas-i+1; k ++) {System.out.print (""); } para (int j = 1; j <= i; j ++) {System.out.print (Fun (i, j)+""); } System.out.println (); }}}Por favor, insira o número de linhas:
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Vamos compartilhar outro exemplo:
/*** Imprima o triângulo Yanghui (Triângulo Pascal), Imprima 10 linhas**/classe pública yanghuisanjiao {public static void main (string [] args) {int [] [] a = new int [11] [11]; for (int i = 0; i <10; i ++) {a [i] [0] = 1; a [i] [i] = 1; } para (int i = 1; i <10; i ++) {for (int j = 1; j <i; j ++) {a [i] [j] = a [i-1] [j-1]+a [i-1] [j]; }} para (int i = 0; i <10; i ++) {for (int j = 0; j <10-i; j ++) {System.out.print (""); } para (int k = 0; k <10; k ++) {if (a [i] [k]! = 0) {System.out.print (a [i] [k]+""); }} System.out.println (); }}}resultado:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
Resumir
O exposto acima é sobre os exemplos de programação Java para implementar o código do triângulo Pascal, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!