JAVA语言杨辉三角形编程出错
publicclassYanghui2{publicstaticvoidmain(String[]args){inta[][]=newint[10][10];a[0][0...
public class Yanghui2{
public static void main(String[] args){
int a[][]=new int[10][10];
a[0][0] = 1;
a[0][1] = 0;
aa:
for(int i=1;i<10;i++){
for(int j=1;j<10;j++)
{if(i==j) <br> a[i][j]=1;<br> if(j<i)<br> a[i+1][j+1]=a[i][j]+a[i][j+1];<br> else<br> continue aa;<br> System.out.print(a[i][j]+" ");}
System.out.println(); }
}
}
请JAVA语言高手帮忙看看 到底哪里错了 我实在找不出错误了…………………… 展开
public static void main(String[] args){
int a[][]=new int[10][10];
a[0][0] = 1;
a[0][1] = 0;
aa:
for(int i=1;i<10;i++){
for(int j=1;j<10;j++)
{if(i==j) <br> a[i][j]=1;<br> if(j<i)<br> a[i+1][j+1]=a[i][j]+a[i][j+1];<br> else<br> continue aa;<br> System.out.print(a[i][j]+" ");}
System.out.println(); }
}
}
请JAVA语言高手帮忙看看 到底哪里错了 我实在找不出错误了…………………… 展开
2013-09-25
展开全部
public class Yanghui {
public static void main(String[] args) {
Yanghui yang = new Yanghui();
yang.printYanghuiTriangle(13);
}
/**
* 生成指定行数的杨辉三角形
*
* @param lines 杨辉三角形的行数
*/
public void printYanghuiTriangle(int lines) {
if(lines < 1) {
throw new IllegalArgumentException("lines must be great than 0.");
}
if(lines > 30) {
throw new IllegalArgumentException("lines is too big.");
}
int[] line = new int[lines];
int maxLen = getMaxLen(lines);
for(int i = 0; i < lines; i++) {
line[0] = line[i] = 1;
for(int j = 1, k = i / 2, pre = line[0]; j <= k; j++) {
int cur = line[j];
line[i - j] = line[j] += pre;
pre = cur;
}
printLine(line, i + 1, maxLen);
}
}
/**
* 根据指定行数的杨辉三角形,计算其中最大数字的长度
* @param lines 杨辉三角形的行数
* @return 最大数字的长度
*/
private int getMaxLen(int lines) {
int k = lines / 2;
long maxNum = factorial(k + 1, lines - 1) / factorial(1, lines - 1 - k);
return getLength(maxNum);
}
/**
* 阶乘计算
* @param start 阶乘计算的起始数字
* @param num 阶乘计算的终止数字
* @return 阶乘计算结果
*/
private long factorial(int start, int num) {
long result = start > 0 ? start : 1L;
while(num > start) {
result *= num--;
}
return result;
}
/**
* 根据指定数字计算数字的长度
* @param num 数字
* @return 数字的长度
*/
private int getLength(long num) {
int len = 0;
while(num > 0L) {
num /= 10L;
len++;
}
return len;
}
private void printLine(int[] yanghui, int line, int width) {
printSpaces((yanghui.length - line) * width);
for(int i = 0; i < line; i++) {
if(i > 0) {
printSpaces(width);
}
printSpaces(width - getLength(yanghui[i]));
System.out.print(yanghui[i]);
}
System.out.println();
if(width > 1) {
System.out.println();
}
}
private void printSpaces(int spaceCount) {
for(int i = 0; i < spaceCount; i++) {
System.out.print(" ");
}
}
}
public static void main(String[] args) {
Yanghui yang = new Yanghui();
yang.printYanghuiTriangle(13);
}
/**
* 生成指定行数的杨辉三角形
*
* @param lines 杨辉三角形的行数
*/
public void printYanghuiTriangle(int lines) {
if(lines < 1) {
throw new IllegalArgumentException("lines must be great than 0.");
}
if(lines > 30) {
throw new IllegalArgumentException("lines is too big.");
}
int[] line = new int[lines];
int maxLen = getMaxLen(lines);
for(int i = 0; i < lines; i++) {
line[0] = line[i] = 1;
for(int j = 1, k = i / 2, pre = line[0]; j <= k; j++) {
int cur = line[j];
line[i - j] = line[j] += pre;
pre = cur;
}
printLine(line, i + 1, maxLen);
}
}
/**
* 根据指定行数的杨辉三角形,计算其中最大数字的长度
* @param lines 杨辉三角形的行数
* @return 最大数字的长度
*/
private int getMaxLen(int lines) {
int k = lines / 2;
long maxNum = factorial(k + 1, lines - 1) / factorial(1, lines - 1 - k);
return getLength(maxNum);
}
/**
* 阶乘计算
* @param start 阶乘计算的起始数字
* @param num 阶乘计算的终止数字
* @return 阶乘计算结果
*/
private long factorial(int start, int num) {
long result = start > 0 ? start : 1L;
while(num > start) {
result *= num--;
}
return result;
}
/**
* 根据指定数字计算数字的长度
* @param num 数字
* @return 数字的长度
*/
private int getLength(long num) {
int len = 0;
while(num > 0L) {
num /= 10L;
len++;
}
return len;
}
private void printLine(int[] yanghui, int line, int width) {
printSpaces((yanghui.length - line) * width);
for(int i = 0; i < line; i++) {
if(i > 0) {
printSpaces(width);
}
printSpaces(width - getLength(yanghui[i]));
System.out.print(yanghui[i]);
}
System.out.println();
if(width > 1) {
System.out.println();
}
}
private void printSpaces(int spaceCount) {
for(int i = 0; i < spaceCount; i++) {
System.out.print(" ");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-25
展开全部
这是用java输出杨辉三角形的经典程序public class Yanghui {
public static void main(String args[]){
final int ROW=5;
int a[][]=new int[ROW+1][];
for(int i=0;i<=ROW;i++) {
a[i]=new int[i+1];
}
yanghui(a,ROW);
}
static void yanghui(int a[][],int ROW) {
for(int i=0;i<=ROW;i++)
for(int j=0;j<=a[i].length-1;j++){
if(i==0||j==0||j==a[i].length-1)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(int i=0;i<=ROW;i++) {
for(int j=0;j<=a[i].length-1;j++)
System.out.print(a[i][j]+" ");
System.out.println();
}
}
}
public static void main(String args[]){
final int ROW=5;
int a[][]=new int[ROW+1][];
for(int i=0;i<=ROW;i++) {
a[i]=new int[i+1];
}
yanghui(a,ROW);
}
static void yanghui(int a[][],int ROW) {
for(int i=0;i<=ROW;i++)
for(int j=0;j<=a[i].length-1;j++){
if(i==0||j==0||j==a[i].length-1)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(int i=0;i<=ROW;i++) {
for(int j=0;j<=a[i].length-1;j++)
System.out.print(a[i][j]+" ");
System.out.println();
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-25
展开全部
把源程序贴出来看看吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询