Java编程-输出杨辉三角前10行

public class YanghuiTriangle {
  public static void main(String[] args) {
    int triangle[][]=new int[10][];// 创建二维数组
    // 遍历二维数组的第一层
    for (int i = 0; i < triangle.length; i++) {
      triangle[i]=new int[i+1];// 初始化第二层数组的大小
      // 遍历第二层数组
      for(int j=0;j<=i;j++){
        if(i==0||j==0||j==i){ //判断元素是否位于三角形的两个侧边
          triangle[i][j]=1;
        }else{
          triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];// 其他数值通过公式计算
        }
        System.out.print(triangle[i][j]+"\t"); // 输出数组元素
      }
      System.out.println(); //换行
    }
  }

}

分析:杨辉三角的特点,在于两侧值均为1,在数组中表示就是triangle[i][i]与triangle[i][0]的元素值均为1
其他部分的值,为其正上方的数值与左上角的数值之和,即triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1]

重点补充:Java中的二维数组其实是每个元素都是一个一维数组的一维数组。所以第二个维数长度可以任意,不在创建时进行限定

原文地址:https://www.cnblogs.com/fcbyoung/p/10311767.html

时间: 2024-10-10 13:16:34

Java编程-输出杨辉三角前10行的相关文章

编程输出杨辉三角的前10行---多维数组的应用---java实现

import java.util.Scanner;public class yanghui{ public static void main(String[] args){  Scanner sc=new Scanner(System.in);  System.out.println("\nPlease enter the number of Yang Hui triangle rows:");  int n=sc.nextInt();  int [][]a=new int [n][]

java编程输出杨慧三角

代码如下 public class YH { public static void main(String[] args) { int a[][]=new int [10][10]; int i,j,n=10; for(i = 0;i < n ;i++) { for(int k=0;k<n-i;k++){ System.out.print(" "); } for(j = 0;j < i;j++) { if(i == j || j == 0) a[i][j] = 1;

输出杨辉三角(C++和 JAVA版 )

C++版本: #include <iostream> using namespace std; void main() { int n=10; while(n!=-1) { cout<<"请输入 杨辉三角 行数:"; cin>>n; int **a = new int* [n]; for(int m = 0; m < n; m++) { a[m] = new int [n]; } for(int i=0;i<n;i++) { for(in

C语言编程 打印杨辉三角

在做这道题时首先要观察杨辉三角的规律11 11 2 11 3 3 11 4 3 4 1--可以看出1.每行的数字个数与所处行数相等2.除去每行第一个和最后一个数字唯一,其他数字都等于头顶元素加头顶前一个元素 源代码: #include<stdio.h> #include<stdlib.h> void PrintY(int length, int array[][100]) { int i,m; for (i = 0; i <length; i++) { for (m = 0;

算法基础_递归_求杨辉三角第m行第n个数字

问题描述: 算法基础_递归_求杨辉三角第m行第n个数字(m,n都从0开始) 解题源代码(这里打印出的是杨辉三角某一层的所有数字,没用大数,所以有上限,这里只写基本逻辑,要符合题意的话,把循环去掉就好): import java.util.Scanner; /** * 求杨辉三角第m层第n个数字 * @author Administrator * */ public class Demo05 { public static int f(int m,int n) { if(n==0)return 1

java例题_33 等腰输出杨辉三角

1 /*33 [程序 33 杨辉三角] 2 题目:打印出杨辉三角形(要求打印出 10 行如下图) 3 程序分析: 4 1 5 1 1 6 1 2 1 7 1 3 3 1 8 1 4 6 4 1 9 1 5 10 10 5 1 10 */ 11 12 /*分析: 13 * ====================== 14 * 杨辉三角特点: 15 * 1.每个数等于它上方两数之和. 16 * 2.每行数字左右对称,由1开始逐渐变大. 17 * 3.第n行的数字有n项. 18 * ========

实现杨辉三角的10种解法--体验Python之美

本文收集了使用python实现杨辉三角的多种解法,主要为网上收集,也有一些是自己写的.从中可以体会python编写一个算法的不同思想和Python语法的特点. 杨辉三角是什么?还是度娘吧,看起来像是这样的:                          1                          1   1                           1   2   1                         1   3   3   1               

java 实例之杨辉三角

public class study{ public static void main(String args[]){ int i,j,level=7; int Yang[][] = new int[level][]; System.out.println("杨辉三角"); for(i = 0;i<Yang.length;i++){ Yang[i] = new int[i+1]; } Yang[0][0] = 1; //第一个元素为1 } for(i = 1;i<Yang.

C语言实现在屏幕上输出杨辉三角

★在屏幕上打印杨辉三角 #include<stdio.h> int main() { int i = 0, j = 0, num = 0,k = 0; printf("请输入要输出的杨辉三角的行数:"); scanf("%d", &num); for (i = 1; i <= num; i++) { k = 1;         //每行须以1开头,所以将K定义在第二层循环之外 for (j = 1; j <= i; j++) { p