采用两个一维数组输出等腰三角形的杨辉三角

代码如下:

package 杨辉三角;
import java.util.Scanner;
public class 杨辉三角0 {
    public static void main(String[] args)
    {
    Scanner a = new Scanner(System.in);
    System.out.print("输入杨辉三角的行数n:");
    int n=a.nextInt();
    int[] b=new int[100];       //创建整形数组,最大可存放100个整形
    int[] c=new int[100];       //创将两个数组,一个用来存放上一层的数据,另一个用来计算并保存本层数据
    int i,x,y;
    for(i=0;i<100;i++)        //将两个数组全部初始化,数据全为1
        b[i]=c[i]=1;
    for(i=0;i<n;i++)
        {
            for(x=1;x<i-1;x++)
            {
                c[x]=b[x-1]+b[x];     //计算杨辉三角的过程
            }
            for(y=0;y<=n-i;y++)        //每行开头输出空格规范格式
                System.out.print(" ");
            for(x=0;x<=i-1;x++)
            {b[x]=c[x];              //进入下一层之前把本层数据转为上一层数据,给接下来的计算使用

            System.out.print(c[x]+" ");}
            System.out.print("\n");     //每输出一行自动换行
            }
    }
}

总结心得:

(1)创建静态数组时,一定要定义数组的大小,我这里定义的大小为100

(2)计算杨辉三角时,要注意两个数组之间的关系,即c[x]=b[x-1]+b[x]

(3)嵌套的for循环作用:外层for循环是控制杨辉三角层数,内层for循环是具体的计算每个元素的数值

(4)输出格式,即开头的空格数,层数越多,开头的空格越少,用y<=n-i来控制次数

(5)这一步是最容易出错的,就是把计算完成的一行转成上一层并进行下一层的计算,一定不能直接用b=c来赋值,要用for循环一个一个元素的赋值

原文地址:https://www.cnblogs.com/fjcy/p/10602693.html

时间: 2024-11-07 02:40:18

采用两个一维数组输出等腰三角形的杨辉三角的相关文章

采用一维数组输出等腰三角形的杨辉三角

采用一维数组输出等腰三角形的杨辉三角 心得体会: 在网上查询了杨辉三角的方法,刚开始用在程序中直接定义n的方式输出杨辉三角,后来查询到从键盘输入n的方法,在调试程序时有很多错误的地方,如数组未定义等问题. 原文地址:https://www.cnblogs.com/wlyxjj/p/10630796.html

实验四:采用一维数组输出等腰三角形的杨辉三角

package yanghuisanjiao; import java.util.Scanner; public class yiweishuzu {public static void main(String[] args) { @SuppressWarnings("resource")Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();int i,j,k; int a[]=new int[100];int

输出可爱的”杨辉三角”

通过控制输出的格式,实现1.左下杨辉三角(普通型)2.左上三角,3.金字塔形杨辉三角的输出. #include <stdio.h> #include <stdlib.h> int main() { //普通杨辉三角 int i,j,a[10][10]; for(i=0;i<10;i++){ for(j=0;j<=i;j++){ if(j==0 || j==i){ a[i][j]=1; //printf("%4d",a[i][j]); }else{ a

Java的二维数组的应用及杨辉三角的编写

(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个,即该位置上的元素在该行上最大,在该列上最小(注:一个二维数组也可能没有这样的鞍点). /** * * @author liuhui *@version Java上机实验三 *@time 2016.10.30 */ public class javatest2 { public static int

C输出帕斯卡三角(杨辉三角)递归实现

1 /*帕斯卡三角形(杨辉三角)*/ 2 int Recursive_Pascal_Triangle( int i, int j ) 3 { 4 if( (j == 0) || (i == j) ) 5 return 1; 6 else{ 7 return Recursive_Pascal_Triangle(i-1,j-1) + Recursive_Pascal_Triangle( i-1, j ); 8 } 9 } 10 11 /*输出三角形*/ 12 void display_triangl

打印等腰三角形的杨辉三角

原文地址:https://www.cnblogs.com/ltx515/p/10630206.html

一维数组求杨辉三角

问题: 编写程序,根据输入的正整数n(1<=n<=12),输出相应的杨辉三角图案,例如,当n=5时,将输出: 1  1 1                                                     1 2 1                                                   1 3 3 1                                                  1 4 6 4 1             

yanghui杨辉三角--(一维数组)探索1 2

探索1 #include <iostream>#define N 15using namespace std;int a[N]={1};void yanghui(int n){ int i,j; for(i=0;i<n;i++)    {   for(j=0;j<=i;j++) cout<<a[j]<<" ";                       cout<<"\n";       for(j=1;

C语言用一维数组打印杨辉三角(原:无意中想到)

//求前10行的数 1 int a[11] = { 1 }; 2 a[0] = 1, a[1] = 1; 3 int i, j,m; 4 for (i = 2; i <= 11; i++) //2-11 输出10行 5 { 6 for (j = i - 1; j > 1; j--) //关键在这句,倒着求 7 { 8 a[j] = a[j] + a[j - 1]; 9 printf("%5d", a[j]); 10 } 11 printf("%5d\n"