黑马程序员技术交流社区
标题:
点招面试十大难题之一:杨辉三角
[打印本页]
作者:
DD1dog
时间:
2016-5-19 18:18
标题:
点招面试十大难题之一:杨辉三角
class Triangle {
public static void main(String[] args) {
//a[i][j] = a[i-1][j-1] + a[i-1][j]
int n = 10;
/*生成杨辉三角,用二维数组,但空间利用率只有1/2*/
int[][] a = new int[n][n];
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(i<2) {
a[i][j] = 1;
} else{
if(j == 0 || j == i) {
a[i][j] = 1;
} else {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
}
}
printArr(a);
}
public static void printArr(int[][] a) {
for(int i=0; i<a.length; i++) {
for(int j=0; j<=i; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}
作者:
ppaapc
时间:
2016-5-19 18:19
挺不错的 字词一下
作者:
729524251
时间:
2016-5-19 19:14
表示看不懂·
作者:
okchenyang44
时间:
2016-5-19 20:16
看就感觉要走的路还
作者:
loop
时间:
2016-5-19 20:41
表示什么是杨辉三角都不知道
作者:
Belive丶Me
时间:
2016-5-19 21:15
loop 发表于 2016-5-19 20:41
表示什么是杨辉三角都不知道
http://baike.so.com/doc/5391358-5628080.html
你有必要看一下
作者:
TCK8888
时间:
2016-5-19 22:34
换个算法看看
import java.util.Scanner;
/**
* 杨辉三角
*
* @author Administrator
*
*/
public class YH3J {
public static void main(String[] args) {
System.out.print("输入层数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt() + 1;
int[][] a = new int[n][n];
a = work(a, n - 1);
printArray(n, a);
}
/*
* 杨辉三角算法
*/
public static int[][] work(int[][] a, int n) {
a[n][0] = 1;
for (int i = 1; i < n; i++) {
a[n][i] = work(a, n - 1)[n - 1][i - 1] + work(a, n - 1)[n - 1][i];
}
return a;
}
/*
* 遍历数组
*/
public static void printArray(int n, int[][] a) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2