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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

22222    
  2222
    222
      22
        2


评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

16 个回复

倒序浏览
  1. /*
  2.         打印右对齐的倒三角形
  3.         思路:
  4.                 三个for循环,外层循环内嵌套两个for循环。外层用于控制行数
  5.                 内层循环一个用于输出空格,另一个用于输出字符。
  6.         具体分析:
  7.                 一共打印5行,下面用行号从0开始编号便于分析。
  8.                 逻辑上的第1行,即第0行打印0个空格和5个字符,即0个空格,和5-0个字符
  9.                 逻辑上的第2行,即第1行打印1个空格和4个字符,即1个空格,和5-1个字符
  10.                 也就是(从0开始编号)
  11.                 第i行打印i个空格和5-i个字符
  12. */
  13. class PrintTrigon
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 for(int i=0;i<5;i++)
  18.                 {
  19.                         for(int j=0;j<i;j++)
  20.                         {
  21.                                 System.out.print(" ");
  22.                         }
  23.                         for(int j=0;j<5-i;j++)
  24.                         {
  25.                                 System.out.print("2");
  26.                         }
  27.                         System.out.println();
  28.                 }
  29.         }
  30. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
上面的效果。

QQ截图20141012012254.png (472 Bytes, 下载次数: 116)

QQ截图20141012012254.png
回复 使用道具 举报
看基础视频的时候我也顺便写了一些居中对齐的倒三角形
  1. /*
  2.         打印倒三角形
  3.         条件:第一行20个*,第二行18个“*”,第三行16个“*”,第i行20-(i-1)*2个“*”
  4.         思路:
  5.                 1、外层循环控制行数。一共需要11行。20-(11-1)*2=0。
  6.                 2、内层两个循环,第一个魂环先打印空格。第i行需要i-1个空格。
  7.                 3、第二个循环打印“*”,第i行需要20-(i-1)*2个“*”。
  8. */
  9. class Trigon
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                 for(int i=0;i<=10;i++)
  14.                 {
  15.                         for(int j=0;j<i;j++)
  16.                         {
  17.                                 System.out.print(" ");
  18.                         }
  19.                         for(int j=0;j<=20-i*2;j++)
  20.                         {
  21.                                 System.out.print("*");
  22.                         }
  23.                         System.out.println();
  24.                 }
  25.         }
  26. }
复制代码



QQ截图20141012012157.png (1.04 KB, 下载次数: 111)

QQ截图20141012012157.png
回复 使用道具 举报
  1. //利用二维数组来打印右对其尖朝下的三角形


  2. class C
  3. {
  4.         public static void main(String[] args)
  5.         {       
  6.                        
  7.                 show(5);
  8.         }

  9.         public static void show(int a)
  10.         {       
  11.                 int s[][]=new int[a][a];//定义一个二维数组

  12.                         //往二维数组中传数
  13.                 for(int i=0; i<a; i++)
  14.                 {
  15.                         for (int j=0;j<a ;j++ )
  16.                         {
  17.                                 s[i][j]=2;
  18.                         }
  19.                 }
  20.                 //打印
  21.                 for (int i=0;i<a;i++)
  22.                 {
  23.                         //这里是打印空格
  24.                         for (int j=0;j<=i ;j++ )
  25.                         {
  26.                                 System.out.print(" ");
  27.                         }
  28.                         //这里是打印数组
  29.                         for(int j=i;j<a;j++)
  30.                         {
  31.                                 System.out.print(s[i][j]+"");
  32.                         }
  33.                         System.out.println();
  34.                 }
  35.         }
  36. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报 1 0
这个是运行结果。其实用二维数组来做也挺方便的

QQ图片20141012050703.jpg (6.63 KB, 下载次数: 117)

QQ图片20141012050703.jpg
回复 使用道具 举报
和毕老师视频里的那个很像嘛,只不过是反着的,三个for循环:一个控制行数,一个控制输出空格,一个控制输出数字。
回复 使用道具 举报
毕老师有教
回复 使用道具 举报

这个简单,难的是用二维数组!!!!
回复 使用道具 举报

这个牛逼,高手啊
回复 使用道具 举报
本帖最后由 javaAndroid 于 2014-10-12 11:36 编辑

没注意到要用二维数组,刚新写了一个。
  1. String[][] tri=new String[5][5];
  2. for(int i=0;i<5;i++){
  3.         for(int j=0;j<5;j++){
  4.                 if(j<i){
  5.                         tri[i][j]=" ";
  6.                 }
  7.                 else{
  8.                         tri[i][j]="2";
  9.                 }
  10.         }
  11. }
  12. for(int i=0;i<5;i++){
  13.         for(int j=0;j<5;j++){
  14.                 System.out.print(tri[i][j]);
  15.         }
  16.         System.out.println();
  17. }
复制代码
回复 使用道具 举报
本帖最后由 javaAndroid 于 2014-10-12 11:36 编辑

或者改写一下简化一下代码
  1. String[][] tri=new String[5][5];
  2. for(int i=0;i<5;i++){
  3.         for(int j=0;j<5;j++){
  4.                 if(j<i){
  5.                         tri[i][j]=" ";
  6.                 }
  7.                 else{
  8.                         tri[i][j]="2";
  9.                 }
  10.                 System.out.print(tri[i][j]);
  11.         }
  12.         System.out.println();
  13. }
复制代码
回复 使用道具 举报
  1. public static void main(String[] args) {
  2.                 int x = 5, y = 5;
  3.                 String[][] ii = new String[x][y];
  4.                 for (int i = 0; i < x; i++) {
  5.                         for (int j = 0; j < y; j++) {
  6.                                 if (j < i) {
  7.                                         ii[i][j] = "  ";
  8.                                 } else {
  9.                                         ii[i][j] = "2";
  10.                                 }
  11.                                 System.out.print(ii[i][j]);
  12.                         }
  13.                         System.out.println();
  14.                 }
  15.         }
复制代码
回复 使用道具 举报
本帖最后由 小刺风 于 2014-10-12 15:16 编辑

这个问题很难不?用一个循环不就可以了?
回复 使用道具 举报
都是高手啊
回复 使用道具 举报
zz_job 中级黑马 2014-10-12 17:53:58
16#

嗯  就是这样的  用二维数组做最方便了  比用循环嵌套方便得多
回复 使用道具 举报
哈哈,我全做出来了,谢谢大家的帮忙:hug:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马