黑马程序员技术交流社区
标题:
杨辉三角无法运行
[打印本页]
作者:
廉伟
时间:
2012-8-29 08:26
标题:
杨辉三角无法运行
/*
提示:杨辉三角是由一个由数字排列的三角形数字表,特征两侧数字为1,其余每个数值为其正上方元素
值与左上方元素值之和。
可用数组array[i][j]=array[i-1][j-1]+array[i-1][j]来表示。
*/
import java.util.Scanner;
public class YangHuiTriangle {
public static void main(String[] args) {
//输入行数
System.out.println("请输入杨辉三角的行数:");
Scanner ScRows=new Scanner(System.in);
final int Rows=ScRows.nextInt();
//声明二维数组,设置一维行数为Rows+1
int array[][] =new int[Rows+1][];
//循环初始化数组
for(int i=0;i<=Rows;i++){
//设置数组的二位行数
array[i]=new int[i+1];
}
System.out.println("杨辉三角为:");
YhTriangle(array,Rows);
}
//输出杨辉三角
public static void YhTriangle(int array[], int rows) {
//行控制
for(int i=0;i<=rows;i++){
//列控制
for(int j=0;j<array[i].length;j++){
//赋值给二位数组,将两边的元素赋值为1
if(i==0||j==0||j==array[i].length-1)
array[i][j]=1;
//将其正上方元素与左上角元素之和赋值给此元素中。
else
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
//打印输出杨辉三角
for(int i=0;i<=rows;i++){
for(int j=0;j<array[i].length-1;j++){
System.out.print(array[i][j]" ");
}
System.out.println();
}
}
}
复制代码
作者:
信义明
时间:
2012-8-29 10:57
/*
提示:杨辉三角是由一个由数字排列的三角形数字表,特征两侧数字为1,其余每个数值为其正上方元素
值与左上方元素值之和。
可用数组array[i][j]=array[i-1][j-1]+array[i-1][j]来表示。
*/
import java.util.Scanner;
public class YangHuiTriangle {
public static void main(String[] args) {
//输入行数
System.out.println("请输入杨辉三角的行数:");
Scanner ScRows=new Scanner(System.in);
final int Rows=ScRows.nextInt();
//声明二维数组,设置一维行数为Rows+1
//int array[][] =new int[Rows+1][];
int[][] array = new int[Rows][Rows];
/*
//循环初始化数组
for(int i=0;i<=Rows;i++){
//设置数组的二位行数
array[i]=new int[i+1];
}*/
System.out.println("杨辉三角为:");
YhTriangle(array,Rows);
}
//输出杨辉三角
public static void YhTriangle(int array[][], int rows) { //这里传入的第一个参数是二维数组
array[0][0]=1;
//行控制
for(int i=1;i<rows;i++){ //这里i的初值改了
//列控制
for(int j=0;j<=i;j++){
//赋值给二位数组,将两边的元素赋值为1
/*if(i==0||j==0||j==array[i].length-1)
array[i][j]=1;*/
if(j==0 || i==j)
array[i][j]=1;
//将其正上方元素与左上角元素之和赋值给此元素中。
else
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
//打印输出杨辉三角
for(int i=0;i<rows;i++){
for(int j=0;j<=i;j++){ //这里循环的遍历条件改了
System.out.print(array[i][j]+" "); //这里有“+”号
}
System.out.println();
}
}
}
复制代码
改的地方有点多,不过总算是能打印出杨辉三角了,希望你能读懂,要是有些不足还望指出
作者:
廉伟
时间:
2012-8-29 12:06
谢谢你了啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2