注册 登录
编程论坛 JAVA论坛

杨辉三角

lanyifan88 发布于 2015-10-26 21:37, 836 次点击
要求:1、编写程序实现输出杨辉三角。
      2、要求从键盘任意输入行列数。
      3、用数组实现。


求指点!
5 回复
#2
Spy0012015-10-27 00:16
public class TextTriangle {// 操作杨辉三角的类
public 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;//将两侧元素设为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();//换行
}
#3
lanyifan882015-10-28 10:58
回复 2楼 Spy001
要求输入行数和列数,结果你写的这个都都没有 ,不过还是要谢谢你
#4
林月儿2015-10-28 19:35
程序代码:
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;

import javax.swing.JFrame;
import javax.swing.JOptionPane;


public class TestTriangle {
    static Panel trip=new Panel(){
        private static final long serialVersionUID = 1L;

        public void paint(Graphics g)
        {
            g.setFont(new Font("Arial",Font.BOLD,25));
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<i;j++)
                {
                    g.drawString(""+arr[i][j], n*40-i*40+j*80, i*20);
                }
            }
        }
    };
    static int n;
    static int[][] arr;
    public void draw()
    {
        arr=new int[n][];
        for(int i=0;i<n;i++)arr[i]=new int[i+1];
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<i;j++)
            {
                if(j==0||i==j)
                    arr[i][j]=1;
                else
                    arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
            }
        }
        trip.repaint();
    }
    public static void main(String[] args)
    {
        TestTriangle test=new TestTriangle();
        Frame jf=new Frame("Pascal's triangle");
        jf.add(trip);
        jf.setExtendedState(JFrame.MAXIMIZED_BOTH);
        try
        {
            n=Integer.parseInt(JOptionPane.showInputDialog("please input the level:"))+1;            
        } catch (Exception e)
        {
            JOptionPane.showMessageDialog(null, e.getMessage()+",Example as 10");
            n=10;
        }        
        finally
        {
            test.draw();            
            jf.setVisible(true);
        }
    }
}
#5
岛城起风2015-10-31 12:39
代码看看就懂但是逻辑思维跟不上
#6
yuanfan5212015-11-11 16:52
看的懂,写不出来
1