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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 福娃51zx 中级黑马   /  2015-3-25 18:00  /  2128 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 福娃51zx 于 2015-3-26 08:39 编辑

如何写让程序打印出      
                     *
                    * *
                   * * *
                  * * * *

13 个回复

倒序浏览
轻羽涉池 来自手机 中级黑马 2015-3-25 18:19:12
沙发
for循环套两个for.第一个打印正三角的空格,另一个打印星加空格
回复 使用道具 举报
轻羽涉池 发表于 2015-3-25 18:19
for循环套两个for.第一个打印正三角的空格,另一个打印星加空格

大神能写代码出来吗?不明白
回复 使用道具 举报
本帖最后由 黑色救护车 于 2015-3-25 19:55 编辑
  1. public class Triangle6 {
  2.         
  3.         public static void main(String[] args) {
  4.                
  5.                 int base = 15;
  6.                
  7.                 //打印上述图形,初始行*的个数与整个图形行数的关系是 (最后一行*个数 / 2 + 1),例如最后一行*个数(base) = 7的时候,有4行,以此类推
  8.                 for(int x = 0; x < (base / 2 + 1); x ++) {
  9.                         
  10.                         //每行空格的个数 = 最后一行*个数 / 2
  11.                         for(int j = (base / 2); j > x; j --) {
  12.                                 System.out.print(" ");
  13.                         }
  14.                         
  15.                         //第(x + 1)行*的个数 = 最后一行*的个数(base) - 2 * (整个三角形的行数 - (x + 1)
  16.                         for(int y = 0; y < (base - 2 * ((base / 2 + 1) - (x + 1))); y ++) {
  17.                                 System.out.print("*");
  18.                         }
  19.                         
  20.                         System.out.println();
  21.                 }
  22.         }
  23. }
复制代码

希望对你有帮助~:)
回复 使用道具 举报
上面貌似不是你要的图形~~ 这个就是了~
  1. package test;

  2. public class Triangle7 {

  3.         public static void main(String[] args) {
  4.                 for(int x = 0; x < 5; x ++) {
  5.                         //此循环打印空格,已开始便于理解的时候,可以将输出内容改成“-”
  6.                         for(int y = x; y < 5; y ++) {
  7.                                 System.out.print(" ");
  8.                         }
  9.                         //此循环打印“* ”,最后图形即等腰三角形
  10.                         for(int j = 0; j < x + 1; j ++) {
  11.                                 System.out.print("* ");
  12.                         }
  13.                         System.out.println();
  14.                 }
  15.         }
  16. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报

好,太牛了,谢谢!
回复 使用道具 举报
福娃51zx 发表于 2015-3-25 20:04
好,太牛了,谢谢!

不过int base = 8;时打印的不是等腰三角形
回复 使用道具 举报
福娃51zx 发表于 2015-3-25 20:08
不过int base = 8;时打印的不是等腰三角形

是,多谢指正,我修改去了~
回复 使用道具 举报
福娃51zx 发表于 2015-3-25 20:08
不过int base = 8;时打印的不是等腰三角形

哈哈哈,只能这么投机了。。。可能是(base - 2 * ((base / 2 + 1) - (x + 1))); y ++)这行里面有蹊跷~目前只能想到做个判断完了~哪天有空了继续想想这个东西~肯定还有其他方法的~这么来就OK了~代码来也~
  1. package test;

  2. /**
  3. * 打印如下图形:
  4. *
  5. *                     *
  6. *         ***
  7. *        *****
  8. *       *******
  9. *          .
  10. *          .
  11. *          .
  12. *         
  13. *         
  14. * @author jeremy
  15. *
  16. *        思路同Triangle5,只是打印空格的循环先于换行语句执行,以及需要根据整个三角的行数确定每行打印空格的个数。
  17. */

  18. public class Triangle6 {
  19.        
  20.         public static void main(String[] args) {
  21.                
  22.                 int base = 8;
  23.                
  24.                 //打印上述图形,初始行*的个数与整个图形行数的关系是 (最后一行*个数 / 2 + 1),例如最后一行*个数(base) = 7的时候,有4行,以此类推
  25.                 for(int x = 0; x < (base / 2 + 1); x ++) {
  26.                        
  27.                         //每行空格的个数 = 最后一行*个数 / 2
  28.                         for(int j = (base / 2); j > x; j --) {
  29.                                 System.out.print(" ");
  30.                         }
  31.                        
  32.                         //第(x + 1)行*的个数 = 最后一行*的个数(base) - 2 * (整个三角形的行数 - (x + 1))
  33.                         if(base % 2 == 0) {
  34.                                 for(int y = 0; y <= (base - 2 * ((base / 2 + 1) - (x + 1))); y ++) {
  35.                                         System.out.print("*");
  36.                                 }
  37.                         } else {
  38.                                 for(int y = 0; y < (base - 2 * ((base / 2 + 1) - (x + 1))); y ++) {
  39.                                         System.out.print("*");
  40.                                 }
  41.                         }
  42.                         System.out.println();
  43.                 }
  44.         }
  45. }
复制代码

就多了个判断,恶心吧,哈哈哈哈~;P
回复 使用道具 举报
看到就想晕了
回复 使用道具 举报
本帖最后由 hhh233 于 2015-3-25 22:21 编辑
  1. public class Demo {
  2. public static void main(String[] args) {
  3.     int H = 5;
  4.     for(int i=0; i<(H+1) / 2; i++) {
  5.      for(int j=0; j<H/2-i; j++) {
  6.       System.out.print(" ");
  7.      }
  8.      for(int k=1; k<(i+1)*2; k++) {
  9.       System.out.print('*');
  10.      }
  11.      System.out.println();
  12.     }
复制代码



评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报
看了视频就知道了
回复 使用道具 举报
回复 使用道具 举报
额,看视频啊。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马