杨辉三角用java怎么编写代码

杨辉三角用java怎么编写代码,第1张

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程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9299643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存