杨辉三角(打印出三角形)的一维数组和二维数组实现
2014-03-08 19:30
197 查看
废话少说,直接上代码,代码注释阐明一切……
更多请移步
二维数组实现
/** * 杨辉三角二维数组实现 * @author Last D */ package 实验; import java.util.Scanner; public class Triangle2D { public static void main(String[] args) { System.out.println("请输入指定的杨辉三角行数:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); int[][] temp = tri(n); System.out.println("打印的杨辉三角如下:"); print(temp, n); } static int[][] tri (int n) { int[][] yh = new int []; //给一维分配空间 yh[0] = new int[1]; //给二维分配空间 yh[0][0] = 1; for (int i = 1; i < n; i++) { yh[i] = new int[i+1]; //给二维分配空间 yh[i][0] = yh[i][i] = 1; for (int j = 1; j < i; j++) { yh[i][j] = yh[i-1][j-1] + yh[i-1][j]; //值为上一行对角的值之和 } } return yh; } static void print (int[][] temp, int n) { int col = (2*n-1)/2; for (int i = 0; i < n; i++) { //打印空格 for (int k = 0; k < col; k++) { System.out.print(" "); } //打印数值 for (int j = 0; j <= i; j++) { System.out.print(temp[i][j]+" "); } System.out.println("\t"); col--; } } }
一维数组实现
/** * 用一维数组实现杨辉三角 * @author Last D */ package 实验; public class Triangle1D { public static void main(String[] args) { int num = 5;//杨辉三角行数 int[] temp = tri (num); print (temp, num); } static int[] tri (int num) { int sum = num * (num + 1)/2; int[] d1 = new int[sum]; d1[0] = 1; for (int i = 1; i < num; i++) { int loca = i * (i + 1)/2;//当前行的起始位置 d1[loca] = d1[loca + i] = 1; for (int j = loca + 1; j < loca + i; j++) { d1[j] = d1[j - i - 1] + d1[j - i]; } } return d1; } static void print (int[] temp, int n) { int col = (2*n-1)/2; for (int i = 0; i < n; i++) { //打印空格 for (int k = 0; k < col; k++) { System.out.print(" "); } //打印数值 int loca = i * (i + 1)/2;//当前行的起始位置 for (int j = loca; j <= loca + i; j++) { System.out.print(temp[j]+" "); } System.out.println("\t"); col--; } } }
更多请移步
超哥的小栈
相关文章推荐
- 杨辉三角二维数组与一维数组实现(C语言)
- JavaSE:二维数组的经典例题:打印杨辉三角的前十行
- Python 2.7 实现打印杨辉三角
- Java-杨辉三角二维数组实现
- java打印三角形的两种思路和实现
- java实现杨辉三角打印
- 杨辉三角(一维数组实现)
- 用C编程实现打印杨辉三角
- 用c++实现打印三角形
- java 使用二维数组打印一个10行杨辉三角;
- 【Java每日编程题01】实现一个方法,接收一个层数值n,打印一个有n层的直角三角形,并返回底边最后一个值。并打印出来。
- shell中用eval和一维数组模拟实现二维数组
- 利用循环队列实现杨辉三角的打印
- java实现 逆时针打印二维数组
- 06_二维数组【四种格式、打印杨辉三角、Java中参数传递、数据加密案例】、面向对象【对象内存图】
- 打印杨辉三角,三角形,四边形
- 二维数组环形打印的实现
- C++实现四种三角形的打印
- hdu 2032 一维数组实现杨辉三角
- HDOJ 打印杨辉三角 C语言实现