重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//打印杨辉三角
公司主营业务:成都网站建设、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出华阴免费做网站回馈大家。
/* 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; //第二行
yh[2][0]=1;
yh[2][2]=1; //第三行
yh[2][1]=yh[2-1][1-1]+yh[2-1][1]; // 第三行的2
yh[3][1]=yh[3-1][1-1]+yh[3-1][1]; //第四行的第一个3
yh[3][2]=yh[3-1][2-1]+yh[3-1][2]; //第四行的第二个3
*/
for(int j=0;ji;j++){ //因为两个边都是1 所以先给两边赋值
yh[j][0]=1;
yh[j][j]=1;
}
for(int j=2; ji; j++){ //根据公式 算出杨辉三角的特性 并赋值
for(int n=1; nj; n++){
yh[j][n]=yh[j-1][n-1]+yh[j-1][n];
}
}
for(int j=0; ji; j++){ //输出 杨辉三角
for(int n=0; n=j; n++){
System.out.print(yh[j][n]+" ");
}
System.out.println();
}
}
}
import java.util.Scanner;
public class f
{
public static void main(String args[])
{
Scanner reader=new Scanner(System.in);
System.out.printIn("输入n");
int x=reader.nextInt();
int a[][],i;
//n没有赋值
a=new int[n][n];
for(i=0;in;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;in;i++)
for(j=1;jn-1;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;in;i++)
for(j=0;jn;j++)
{
if(a[i][j]!=0)
//print(I)n中,是PRINTLN,注意,不是I,
System.out.printIn(a[i][j]);
}
}
//这里少了一个}号
main函数前四行就扯了一个蛋,输入了一个int n,定义了一个int a[n][n]
把重点放到杨辉三角上来。。。
杨辉三角的思想是:每一个数字都是它肩上两个数之和。
想象着把这个三角拉成直角的:
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].
该程序打印部分是将每一行的所有元素以及元素间的空白连成一个串来输出,当然,杨辉三角外的部分要稍加处理就行了。
第十二幅图片比较好,建议瞅瞅。
------以上仅代表个人观点------
public class yanghui {
public static int[] Hang(int[] hangj,int i){
int[] ss=new int[i];
ss[0]=1;
ss[i-1]=1;
for(int j=1;j=i-2;j++){
ss[j]=hangj[j]+hangj[j-1];
}
return ss;
}
public static void main(String[] args){
int n=10;//行数
int[] hang1=new int[1];
hang1[0]=1;
int k=2;
int[] hang=hang1;
for(k=2;k=n;k++){
hang=Hang(hang,k);
for(int num=0;numk;num++)
{
System.out.print(hang[num]+" ");
}
System.out.println("");
}
}
} 我手写的,很辛苦
本程序只使用了一维数组
public classYangHui{
public static void main(String args[])
{ int i;
int yh[]=new int[8]; //一行中最大八个元素
for(i=0;i8;i++) //i实际控制着行数,即当前打印到第i行
{ yh[i]=1; //初始化数组中的当前行能用到的每个元素为1(比如当前打印到第4行,则初始化数组中前4个元素为1,此处较难理解,其实前3个元素已经在前面的循环中初始化,所以此处实际是初始化一行中最后一个元素为1)
for(int j=i-1;j0;j--) //第3行才开始本循环
yh[j]=yh[j-1]+yh[j]; //赋值前yh[j]实际上是前一行的数据,即[i-1]行的数据,所以此处重新赋值为yh[j-1]+yh[j],赋值后yh[j]才变成当前行需要的数据。此处看懂了,整个程序就看懂了!
for(int j=0;j=i;j++) //此循环只是输出一行中的数据而已
System.out.print(yh[j]+"\t");
System.out.println();} //一行输出完后换行
}
}
本程序比较巧妙,我也是看了好几遍才看明白,真正难点只在于赋值那一行。
对于你这个for循环。按照你输入的5来分析,第一个放一起的写法,这是只有一层循环,当(x,y)=(3,2)(4,3)(5,4)(6,5)时,满足循环条件,共循环四次。第二种分开写,两层循环,当外层x=3时,进去内层循环,y可取2,3,4,5。内层循环结束回到外层,x=4,进入内层,同理y可取2,3,4,5………
这样就进行了3*4=12次循环。