A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© breaveheart 中级黑马   /  2013-7-27 09:48  /  948 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 breaveheart 于 2013-7-27 10:58 编辑

关于杨辉三角的输出问题。当数字为双的时候整体就不美观了,不知道谁可以提点解决方法?
附代码和图。

  1. <P>package yanghui;
  2. import java.util.*;
  3. public class sanjiao
  4. {

  5. public static void main(String[] args) {
  6.   System.out.print("请输入行数:");
  7.   Scanner scanner=new Scanner(System.in);
  8.   int h=scanner.nextInt();
  9.   int a[][]=new int[h+1][];
  10.   for(int i=0;i<=h;i++){
  11.    a[i]=new int[i+1];
  12.   }
  13.   System.out.println("杨辉三角是:");
  14.   Demo(a,h);
  15.   }
  16.          public static void Demo(int a[][],int h){
  17.           for(int i=0;i<=h;i++){
  18.            for(int j=0;j<a[i].length;j++){
  19.             if(i==0||j==0||j==a[i].length-1)
  20.              a[i][j]=1;
  21.             else
  22.              a[i][j]=a[i-1][j-1]+a[i-1][j];
  23.            }
  24.           }
  25.           for(int i=0;i<h;i++){
  26.            for(int m=0;m<h-i+1;m++){
  27.             System.out.print(" ");
  28.             }
  29.                 for(int j=0;j<a[i].length;j++){
  30.                  System.out.print(a[i][j]+" ");
  31.                 }
  32.                 System.out.println();
  33.           }
  34. }</P>
  35. <P>}</P>
复制代码

2 个回复

倒序浏览
说起来这个问题难解决,两位的处理好了,还有三位四位更多位的,因为是字符对齐的,这样下来三角顶部就越来越宽。解决方法就是让每一个数字的所占地方增加,都保持最长数字的位数
回复 使用道具 举报
薛淑凯 发表于 2013-7-27 09:57
说起来这个问题难解决,两位的处理好了,还有三位四位更多位的,因为是字符对齐的,这样下来三角顶部就越来 ...

嗯,这是个好想法:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马