跪求一个求扬辉三角的JAVA程序急!!!!!!!!

作者&投稿:笃翠 (若有异议请与网页底部的电邮联系)
JAVA程序:扬辉三角形。~

程序是手写的有错误,改正过来了:
public class Test{
public static void main(String args[]){
int a[][]=new int[5][6];//定义二维数组,用来存放杨辉三角
a[0][1]=1;//将二维数组的第一行第二个值设为1,以便以后的值从中计算出来
for(int i=0;i<a.length;i++){//设置及输出杨辉三角的每一行
for(int j=1;j<a[i].length;j++){//设置及输出杨辉三角的每一列
if(i!=0)//当第0行时不需要赋值
a[i][j]=a[i-1][j-1]+a[i-1][j];//杨辉三角赋值
if(a[i][j]!=0)//为0时不输出
System.out.print(a[i][j]);//杨辉三角输出
}
System.out.println();//换行
}
}
}

基本思路如下:
先看一下杨辉三角是什么样
1
11
121
1331
14641
我们把它变一下形:
010000
011000
012100
013310
014641
好了,规律看出来了,每一个值都等于它对应正上方的数和正上方前一个数之和。
闲来无事,送给初学者。

这里有个 C++的改造下就可以了:
=============================
#include
#define MAX 100
void main()
{
int a[MAX][MAX],i,j,n;
cout<<"Enter n=";
cin>>n;
for(i=0;i<n;i++)
{
a[i][0]=1;//将边界上的点
a[i][i]=1;//赋值为1
}
for(i=1;i<n;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];//自己画个数组出来直观些
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
}

#include
#include

typedef long (*FunPtr)( long, long );

long Factorial( long value );
long GetElementMethod1( long row, long col );
long GetElementMethod2( long row, long col );
void Output( long step, FunPtr funptr );

// 程序入口点
int main()
{
FunPtr funptr;

// 使用数学公式方法输出杨辉三角
funptr = GetElementMethod1;
Output( 6, funptr );

cout << endl;

// 使用递归输出杨辉三角
funptr = GetElementMethod2;
Output( 6, funptr );

return 0;
}

// 获取当前参数的阶乘值
long Factorial( long value )
{
if ( value == 0 || value == 1 )
return 1;
else
return value * Factorial( value - 1 );
}

// 获取杨辉三角第row行第col列元素的值
long GetElementMethod1( long row, long col )
{
return Factorial( row ) / ( Factorial( row - col ) * Factorial( col ) );
}

// 获取杨辉三角第row行第col列元素的值
long GetElementMethod2( long row, long col )
{
if ( col == 0 || row == col )
return 1;
else
return GetElementMethod2( row - 1, col - 1 ) + GetElementMethod2( row - 1, col );
}

// 输出杨辉三角,step为杨辉三角的阶数。
void Output( long step, FunPtr funptr )
{
for ( int row = 0; row <= step; ++row )
{
for ( int col = 0; col <= row; col++ )
{
cout << setw( 5 ) << funptr( row, col );
}

cout << endl;
}
}

=============================
网上也有很多 搜下

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();
}

}
}


杨辉三角的常见题型
关于杨辉三角的常见题型如下:求杨辉三角的某一行或某个位置上的数值。求杨辉三角的第n行的所有数的和。求杨辉三角的第n行中奇数项的和。求杨辉三角的第n行中偶数项的和。求杨辉三角的第n行中所有素数的和。求杨辉三角的前n行的所有数的和。求杨辉三角的前n行中所有素数的和。求杨辉三角的前n行...

求杨辉三角的通项公式
第n行m列元素通项公式为:C(n-1,m-1)=(n-1)!\/[(m-1)!(n-m)!](其中!表示阶乘,n!=n*(n-1)*...*2*1)杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623---1662)在1654年发现这一规律,所以...

杨辉三角第几行第几个数怎么求
表示n的阶乘,即n*(n-1)*...*2*1。要找到杨辉三角中第n行第m个数,只需计算C(n-1,m-1)即可。要找到杨辉三角中第5行第3个数,计算C(4,2):C(4,2)=4!\/(2!*(4-2)!)=(4*3*2*1)\/(2*1*2)

杨辉三角的公式求杨辉三角第N行第M个数是什么公式
a(4,1)=3C0=1 ,a(4,2)=3C1=3 ,a(4,3)=3C2=3 .a(4,4)=3C3=1 ∴ a(n,m)=(n-1)C(m-1)即第n行第m个数是组合数 (n-1) 中 选 (m-1)杨辉三角是一个由数字排列成的三角形数表,一般形式如下:1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6...

求一个数在杨辉三角最早出现在哪一行
正整数n,在杨辉三角的第n+1行一定会出现。而每一行的系数可表示为C(m,p),考虑到杨辉三角的对称性。取m=1,2,……,n;p=1,2,……[n\/2];define func( x ) ( x *= ( x ? ( func( x - 1 ) ) : 1 ) )int m=0,n,p,i,j;main(){ cout<<"请输入正整数n:"<<endl;...

杨辉三角第三项系数怎么求?
找规律发现(a+b)^3的第三项系数为3=1+2;(a+b)^4的第三项系数为6=1+2+3;(a+b)^5的第三项系数为10=1+2+3+4;不难发现(a+b)^n的第三项系数为1+2+3+…+(n-2)+(n-1),∴(a+b)^20第三项系数为1+2+3+…+19=190,...

求杨辉三角形得C语言程序代码。要求六行,使用二维数组
int main(){ int i=0,j=0,a[6][6]={{0}};for (i=0;i<6;i++)a[i][0]=a[i][i]=1;for (i=2;i<6;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for (i=0;i<6;i++){ for (j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\\n...

杨辉三角怎么算?
杨辉三角具有左右对称性,即第n行的第k个数字等于第n行的第n-k个数字。这个对称性可以使得计算杨辉三角的某些部分更加高效。斜对角规律:从第2行开始,每条斜对角线上的数字之和都是2的幂。例如,第1个斜对角线上的数字之和为2^0=1,第2个斜对角线上的数字之和为2^1=2,第3个斜对角线上的...

求杨辉三角(a+b)四次方展开式
展开全部 1,4,6,4,1(a+b)=a^4+4a^3b+6a^2b^2+4ab^3+b^4 更多追问追答 追问 ^是什么符号? 追答 那个是几次方 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 匿名用户 2015-10-04 展开全部 题干数据缺失 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 小町在此 ...

求杨辉三角第N行第M个数的表示(杨辉三角如下)
杨辉三角实际上是二项式展开后的系数 例如 【1】(x+y)^0=1 【2】(x+y)^1=x+y 【1 1】【3】(x+y)^2=x^2+2*x*y+y^2【1 2 1】【4】(x+y)^3=x^3+3*x^2*y+3*x*y^2+y^3【1 3 3 1】【5】(x+y)^4=x^4+4*x^3*y+6*x^2*y^2+4*x*y^3+y^4【1 4...

市北区18333686751: 用java编程杨辉三角的代码? -
石仁小儿: 1.杨辉三角形由数字排列,可以把它看做一个数字表,其基本特性是两侧数值均为1,其他位置的数值是其正上方的数字与左上角数值之和,下面是java使用for循环输出包括10行在内的杨辉三角形2.思路是创建一个整型二维数组,包含10个一维...

市北区18333686751: java编写杨辉三角~~~ -
石仁小儿: #include <stdio.h> main() { int i,j,n=0,a[17][17]={0};while(n<1 || n>16){printf("请输入杨辉三角形的行数:");scanf("%d",&n);}for(i=0;i<n;i++)a[i][0]=1; /*第一列全置为一*/for(i=1;i<n;i++)for(j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];/*每...

市北区18333686751: 求大神写一条java程序 ,输出杨辉三角前四行 -
石仁小儿: |class Triangle{public static void triangle(int arr[][],int n) {int i,j,k;for(i=0;i<n;i++)for(j=0;j<=i;j++){if((j==0)||(j==i))arr[i][j]=1;}for(i=2;i<n;i++)for(j=1;j<=i-1;j++)arr[i][j]=arr[i-1][j-1]+arr[i-1][j];for(i=0;i<n;i++){ for(k=1;k<n-i;k++)System.out.print(" ...

市北区18333686751: 杨辉三角java源代码 -
石仁小儿: //打印等腰杨辉三角形 public class YHTriangle { public static void main(String[] args){ //定义二维数组的长度 int length = 10; //声明二维数组 int[][] arr = new int[length][]; //遍历二维数组 for(int i = 0; i < arr.length; i++){ //打印空格 for(int m = 0; m ...

市北区18333686751: 用JAVA编写杨辉三角 -
石仁小儿: 我的绝对正确 书上抄的 还验证过!public static void main(String[]args){int r=6;int a[][]=new int[r+1][]; //表示6个一维数组组成for(int i=0;i<=r;i++){a[i]=new int[i+1];} //表示使用for循环为一维数组指定列数YangHui(a,r);}static void YangHui...

市北区18333686751: java程序,,采用一维数组输出等腰三角形的杨辉三角. -
石仁小儿: public class ttt { public static void main(string[] args) { int[][] a=new int[10][10];for(int i=0;i for(int j=0;j {if (j {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 {for(int k=1;k system.out.printf(" "); for(int j=0;...

市北区18333686751: 用JAVA编杨辉三角形的代码是怎样的,请各位帮帮忙急需 -
石仁小儿: int[] triangle=null; int[] tmp=null; for (int i=0;i<10;i++){ if(i==0){ tmp = new int[1]; tmp[0]=1; } else if (i==1){ tmp = new int[3]; tmp[0] = 1; tmp[1] = 2; tmp[2] = 1; } else { tmp=new int [i+2]; tmp[0]=1; for(int j=1;j<i+1;j++){ tmp[j]=triangle[j-1]+triangle[j]; } tmp[...

市北区18333686751: 用JAVA设计算法并输出可变行数的杨辉三角形
石仁小儿: import java.util.Scanner; public class Test { /** * 行数应该在1-20行之内 * * @param str * @return */ public static int validate(String str) { int row = 0; try { System.out.print(str); Scanner sc = new Scanner(System.in); row = sc.nextInt(); } catch (Exception...

市北区18333686751: 用JAVA程序打印出杨辉三角 -
石仁小儿: 给你个main方法(10行结果的) public static void main(String args[]) { int a=10; int b[][]; b=new int[a][]; for(int i=1;i<=10;i++) { b[i-1]=new int[i]; } for(int j=0;j<10;j++) { for(int k=0;k<=j;k++) { if(j==0||k==0||k==j)//分支 { b[j][k]=1;//等于1的 continue; }else ...

市北区18333686751: JAVA杨辉三角形的代码加注释 -
石仁小儿: //打印杨辉三角/* 1 1 1 1 2 1 1 3 3 1*/ public class Test9 { public static void main(String args[]){ int i = 10; // 控制行数int yh[][] =new int[i][i]; //创建数组/* 不多做解释 我也是新手 我就这么找规律 * yh[0][0]=1; // 第一行yh[1][0]=1; yh[1][1]=1; //第二...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网