Java语言杨辉三角
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言杨辉三角相关的知识,希望对你有一定的参考价值。
JAVA语言输出由数字组成的三角形,谢谢,
输出效果就是这样的
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
打印杨辉三角代码如下:
public class woo
public static void triangle(int n)
int[][] array = new int[n][n];//三角形数组
for(int i=0;i<array.length;i++)
for(int j=0;j<=i;j++)
if(j==0||j==i)
array[i][j]=1;
else
array[i][j] = array[i-1][j-1]+array[i-1][j];
System.out.print(array[i][j]+"\\t");
System.out.println();
public static void main(String args[])
triangle(9);
扩展资料:
杨辉三角起源于中国,在欧洲这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年。它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的优美结合。
杨辉三角具有以下性质:
1、最外层的数字始终是1;
2、第二层是自然数列;
3、第三层是三角数列;
4、角数列相邻数字相加可得方数数列。
参考技术A打印杨辉三角代码如下:
public class woo
public static void triangle(int n)
int[][] array = new int[n][n];//三角形数组
for(int i=0;i<array.length;i++)
for(int j=0;j<=i;j++)
if(j==0||j==i)
array[i][j]=1;
else
array[i][j] = array[i-1][j-1]+array[i-1][j];
System.out.print(array[i][j]+"\\t");
System.out.println();
public static void main(String args[])
triangle(9);
扩展资料:
杨辉三角起源于中国,在欧洲这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年。它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的优美结合。
杨辉三角具有以下性质:
1、最外层的数字始终是1;
2、第二层是自然数列;
3、第三层是三角数列;
4、角数列相邻数字相加可得方数数列。
参考技术Bpublic class YH
public static void main(String agrs[])
int a[5][5],i,j;
for(i = 0;i < 5 ;i++)
for(j = 0;j < i;j++)
if(i == j || j == 1) a[i][j] = 1;
else
a[i][j] = a[i][j-1] + a[i-1][j-1];
System.out.print(a[i][j]);
System.out.print('\\n');
杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。
参考技术C public class PascalTriangle/**Pascal三角形的计算深度为5*/
private static final int PASCAL_DEPTH = 5;
/**数组的行*/
private int row;
/**数组的列*/
private int column;
/**存储不同长度数组的数组,是一个二维数组*/
private int[][] pascalArray = new int[1],new int[2],new int[3],new int[4],new int[5];
/**产生Pascal三角形*/
public void producePascal()
for(row = 0; row < PASCAL_DEPTH; row++)
for(column = 0; column <= row; column++)
//第一列数全为1
if(column == 0)
pascalArray[row][column] = 1;
else
pascalArray[row][column] = (row - column + 1) * pascalArray[row][column - 1] / column;
//end if-else
//end for(column...)
//end for(row...)
/**按照每个数组的长度length打印Pascal三角形*/
public void printWithLength()
for(int i = 0; i < PASCAL_DEPTH; i++)
for(int j = 0, n = pascalArray[i].length; j < n; j++)
System.out.print(pascalArray[i][j] + " ");
System.out.println();
public static void main(String[] args)
PascalTriangle pascal = new PascalTriangle();
pascal.producePascal();
pascal.printWithLength();
很早以前写过的深度为12的杨辉三角,要想完成交互,你可以用Scanner处理
你这里只要求5行,那PASCAL_DEPTH常量定为5即可。
这里只用普通数组,声明时按需声明,用Vector可实现变长数组本回答被提问者采纳 参考技术D class 杨辉三角
public static void main(String[]args)
int a[][]=new int[5][5];
for (int i=0;i<a.length ;i++ )
for (int j=0;j<a[i].length ;j++ )
if (j==0||i==j)
a[i][j]=1;
else
if (i>j)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for (int i=0;i<a.length ;i++ )
for (int j=0;j<a[i].length ;j++ )
if (i>=j)
System.out.print(a[i][j]+"\t");
System.out.println();
这有个杨辉三角(JAVA)程序,请高手给出详解,每一步都解释?
package com.bift;
import java.io.*;
//杨辉三角
public class Test
public static void main(String[] args) throws Exception
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=br.readLine();
int n=Integer.parseInt(input);
int a[][]=new int[n][n];
for(int i=0;i<n;i++)
a[i][0]=1;
a[i][i]=1;//第一列和对角线都是1
for(int i=2;i<n;i++)
for(int j=1;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
//打印
for(int i=0;i<n;i++)
for(int j=0;j<=i;j++)
String str="";
int value=a[i][j];
if(value<10)
str=value+" ";
if(value>=10 && value<100)
str=value+" ";
if(value>=100)
str=value+" ";
System.out.print(str);
System.out.println();//换行
把重点放到杨辉三角上来。。。
杨辉三角的思想是:每一个数字都是它肩上两个数之和。
想象着把这个三角拉成直角的:
o x x x x
o o x x x
o o o x x
o o o o x
o o o o o
在上面这个数组中,o表示三角内的,x表示三角外的
每一个位置的数字a[i][j] = 它上面的数字a[i - 1][j] + 它左上角的数字a[i - 1][j - 1].
该程序打印部分是将每一行的所有元素以及元素间的空白连成一个串来输出,当然,杨辉三角外的部分要稍加处理就行了。
http://baike.baidu.com/view/7804.htm
第十二幅图片比较好,建议瞅瞅。
------以上仅代表个人观点------ 参考技术A 这个不太好解释 这个是我写的
public class yanghuisanjiao
public static void main(String[] args)
int n = 10;
int i =0;
int j=0;
int[][] a=new int[n][j];
for(i=0;i<n;i++)
int k= 10-i;
for(int k1=1;k1<2*k;k1++)
System.out.print(" ");
int[] b= new int[i+1];
a[i]=b;
for (j=0; j<=i; j++ )
if(j == 0&& i==0)
System.out.println("1");
else if(j==0)
a[i][j]=1;
System.out.print("1 ");
else if (j<i)
a[i][j]=a[i-1][j-1]+a[i-1][j];
if(a[i][j]<10)
System.out.print(a[i][j]+" ");
else if(a[i][j]<100)
System.out.print(a[i][j]+" ");
else
System.out.print(a[i][j]+" ");
else
a[i][j]=1;
System.out.println("1");
n可以改任何正整数追问
我就需要详细解释,帮忙看看吧
追答还是以前学的时候自己写的呐 早就忘了怎么想的了 试着自己写一下
首先你自己得看一下那个杨辉三角 然后找规律
在这里都可以看到
0Q 参考技术C 代码: public class YhuiTest public static void main(String[] args) final int Row = 6; int yh[][] = new int[Row][Row]; for (int i = 0; i
以上是关于Java语言杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章