package 大溶合;
/
@author qingsongwang
@杨辉三角,标准的for实现
/
class yanghuisanjiao
{
public static void main(String args[]){
final int MAX=10;
int mat[][]=new int[MAX][];
int i=0,j,n;
n=MAX;
for(i=0;i<n;i++)
{
mat[i]=new int[i+1];
mat[i][0]=1;
mat[i][i]=1;
for(j=1;j<i;j++)
mat[i][j]=mat[i-1][j-1]+mat[i-1][j];
}
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
Systemoutprint(" ");
for(j=0;j<=i;j++)
Systemoutprint(" "+mat[i][j]);
Systemoutprintln();
}
}
}
执行的效果如下
import javautilScanner;
public class yh {
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++) {
Systemoutprintf("%5d ", a[i][j]);
}
Systemoutprintf("\n");
}
}
/
这里判断是不是输入非数字并且行数应该在1-20行之内
@param tip
@return
/
public static int getInt(String tip) {
int row = 0;
try {
Systemoutprint(tip);
Scanner sc = new Scanner(Systemin);
row = scnextInt();
} catch (Exception e) {
Systemoutprintln("输入有误");
row = getInt(tip);
}
if (row < 1 || row > 20) {
Systemoutprintln("输入有误");
row = getInt(tip);
}
return row;
}
}
public class Ttt {
public static void main(String[] args) {
int[][] a=new int[10][10];
for(int i=0;i<10;i++)
for(int j=0;j<10;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<10;i++)
{
for(int k=1;k<=10-i;k++)
Systemoutprintf(" "); for(int j=0;j<=i;j++){
Systemoutprintf("%3d ",a[i][j]);
}
Systemoutprintf("\n");
}
}
}
给你写了一个方法来做,不过没完全按照你的代码写,你可以看看我的方法,然后如果一定要套你的代码的话,你稍微改一改应该就可以了,代码如下:
public static void triangle(int n) {int[] row = new int[2 n - 1];
row[n - 1] = 1;
for(int i = 0; i < n; i++) {
printArray(row);
row = helperArray(row);
}
}
public static int[] helperArray(int[] arr) {
int middle = (arrlength - 1) / 2;
int[] result = new int[arrlength];
if(arr[middle] != 0) {//中间位不为0时,下一层只有奇数位有值
for(int i = 0; i <= (middle - 1) / 2; i++) {
if(middle - 2 (i + 1) < 0)
result[middle - (2 i + 1)] = arr[middle - 2 i];
else
result[middle - (2 i + 1)] = arr[middle - 2 i] + arr[middle - 2 (i + 1)];
result[middle + (2 i + 1)] = result[middle - (2 i + 1)];
}
} else if(arr[middle] == 0) {//中间位为0时,下一层只有偶数位有值
for(int j = 0; j <= middle / 2; j++) {
if(middle - 2 j - 1 < 0)
result[middle - 2 j] = arr[middle - 2 j + 1];
else
result[middle - 2 j] = arr[middle - 2 j - 1] + arr[middle - 2 j + 1];
result[middle + 2 j] = result[middle - 2 j];
}
}
return result;
}
public static void printArray(int[] arr) {
for(int a : arr) {
if(a == 0)
Systemoutprint(" ");
else
Systemoutprint(a);
}
Systemoutprintln();
}
public static void main(String[] args) {
triangle(11);//测试层数为11时的杨辉三角
}
有问题再追问。
import javautilScanner;
public class f
{
public static void main(String args[])
{
Scanner reader=new Scanner(Systemin);
SystemoutprintIn("输入n");
int x=readernextInt();
int a[][],i;
//n没有赋值
a=new int[n][n];
for(i=0;i<n;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<n;i++)
for(j=1;j<n-1;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(a[i][j]!=0)
//print(I)n中,是PRINTLN,注意,不是I,
SystemoutprintIn(a[i][j]);
}
}
//这里少了一个}号
public class Triangle {
/
打印行数
/
private int rows;
/
获得打印行数
@return
/
public int getRows() {
return rows;
}
/
设置打印行数
@param rows
/
public void setRows(int rows) {
thisrows = rows;
}
/
构造函数
@param rows
/
public Triangle(int rows) {
thisrows = rows;
}
/
打印杨辉三角
@param ROW
/
static void show(int ROW) {
int a[][] = new int[ROW + 1][];
for (int i = 0; i <= ROW; i++) {
a[i] = new int[i + 1]; // 指定每行的列数
}
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++) {
Systemoutprint(a[i][j] + " ");
}
Systemoutprintln();
}
}
/
主方法
@param args
/
public static void main(String[] args) {
int lineNo = 9;
Systemoutprintln("要打印的行数:" + lineNo);
Triangle triangle = new Triangle(lineNo);
show(trianglegetRows() - 1);
}
}
以上就是关于杨辉三角用java怎么编写代码全部的内容,包括:杨辉三角用java怎么编写代码、java实现杨辉三角形、采用一维数组输出等腰三角形的杨辉三角。java程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)