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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨永峰 于 2012-5-19 20:21 编辑

寻觅更好的、不同思路的实现方法。
代码:
class Sentence{
        public static void main(String[] args){
                for(int x = 1;x <=5;x++){
                        for(int y = 1;y <=x-1;y++){
                                System.out.print(" ");
                        }
                        for(int z = x;z <= 5;z++){
                                System.out.print("*"+" ");
                        }
                        System.out.println();
                }
                for(int x = 1;x <=4;x++){
                        for(int y = x;y <=3;y++){
                                System.out.print(" ");
                        }
                        for(int z = 0;z <= x;z++){
                                System.out.print("*"+" ");
                        }
                        System.out.println();
                }
        }
}

需求:




评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

9 个回复

倒序浏览
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。
  1. public class Sentence{
  2.     public static void main(String[] args){
  3.             for(int x =-4;Math.abs(x)<=4;x++){
  4.                     for(int y = 0;y <=Math.abs(Math.abs(x)-4);y++){
  5.                             System.out.print(" ");
  6.                     }
  7.                     for(int z = 0;z <= Math.abs(x);z++){
  8.                             System.out.print("*"+" ");
  9.                     }
  10.                     System.out.println();
  11.             }
  12.     }
  13. }
复制代码

评分

参与人数 2技术分 +2 收起 理由
贠(yun)靖 + 1 牛啊,佩服~~!
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 李哲 于 2012-5-20 06:55 编辑

呵呵。重复的回复不好。
回复 使用道具 举报
网速慢,发了两次,抱歉!{:soso_e110:}
回复 使用道具 举报
李哲 发表于 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。 ...

{:soso_e142:},精简了这么多冗余代码
回复 使用道具 举报
李哲 发表于 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。 ...

哥们儿 能为我讲解一下你写的代码吗? 谢谢了。
回复 使用道具 举报
李斌 中级黑马 2012-5-20 01:03:08
7#
李哲 发表于 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。 ...

厉害~~!~~~~~
回复 使用道具 举报
李哲 中级黑马 2012-5-20 07:01:00
8#
袁錦泰 发表于 2012-5-19 23:23
哥们儿 能为我讲解一下你写的代码吗? 谢谢了。

我记得毕老师的原理好像和楼主的不一样。
我其实是在楼主的原理基础上修改。
你只要明白Math.abs()的使用,实在不行,在纸上稍微画一下就会明白。
回复 使用道具 举报
袁錦泰 黑马帝 2012-5-20 10:37:23
9#
李哲 发表于 2012-5-20 07:01
我记得毕老师的原理好像和楼主的不一样。
我其实是在楼主的原理基础上修改。
你只要明白Math.abs()的使用 ...

我記得C語言的時候好像學過這東西,但我想不起來了.我就是想和你請教一下這個絕對值的概念,因為我看到你在第一個內循環中將這玩意兒當做參數用,我一看當時就蒙了. 這個我弄懂之後,思路就能整理出來了,你這程序寫得比較高級,所以我得和你學習學習裏面的精華.
回复 使用道具 举报
袁錦泰 发表于 2012-5-20 10:37
我記得C語言的時候好像學過這東西,但我想不起來了.我就是想和你請教一下這個絕對值的概念,因為我看到你在 ...

绝对说不上什么高级。简单一点代码。
感觉多线程难得多。
互相学习。呵呵。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马