用JAVA设计算法并输出可变行数的杨辉三角形
①输出的杨辉三角形行数由人工输入,对于用户的输入要有友好提示;②程序能够排除输入过程中的非法数据(如:输入的行数为负数或字符等,以后通常称为非法数据);③上下行数据对齐格...
①输出的杨辉三角形行数由人工输入,对于用户的输入要有友好提示;②程序能够排除输入过程中的非法数据(如:输入的行数为负数或字符等,以后通常称为非法数据);③上下行数据对齐格式(要考虑4位数)要符合杨辉三角定义; ④该三角形在屏幕上输出区域内左右居中,且整个输出为等腰三角形格式。
展开
1个回答
2013-12-24
展开全部
import java.util.Scanner;
public class YangHui {
public static void main(String[] args) {
int row = getInt("请输入需要打印的行数(1-20): ");
int[][] a = new int[row][row];
for (int i = 0; i < row; i++)
for (int j = 0; j < row; j++) {
if (j < i) {
a[i][j] = 1;
if (j == 0) {
a[i][j] = 1;
} else {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
} else {
a[i][j] = 1;
}
} for (int i = 0; i < row; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(a[i][j]);
}
System.out.print("\n");
}
} /**
* 这里判断是不是输入非数字并且行数应该在1-20行之内
*
* @param tip
* @return
*/
public static int getInt(String tip) {
int row = 0;
try {
System.out.print(tip);
Scanner sc = new Scanner(System.in);
row = sc.nextInt();
} catch (Exception e) {
System.out.println("输入有误");
row = getInt(tip);
}
if (row < 1 || row > 20) {
System.out.println("输入有误");
row = getInt(tip);
}
return row;
}
}
public class YangHui {
public static void main(String[] args) {
int row = getInt("请输入需要打印的行数(1-20): ");
int[][] a = new int[row][row];
for (int i = 0; i < row; i++)
for (int j = 0; j < row; j++) {
if (j < i) {
a[i][j] = 1;
if (j == 0) {
a[i][j] = 1;
} else {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
} else {
a[i][j] = 1;
}
} for (int i = 0; i < row; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(a[i][j]);
}
System.out.print("\n");
}
} /**
* 这里判断是不是输入非数字并且行数应该在1-20行之内
*
* @param tip
* @return
*/
public static int getInt(String tip) {
int row = 0;
try {
System.out.print(tip);
Scanner sc = new Scanner(System.in);
row = sc.nextInt();
} catch (Exception e) {
System.out.println("输入有误");
row = getInt(tip);
}
if (row < 1 || row > 20) {
System.out.println("输入有误");
row = getInt(tip);
}
return row;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询