您的位置:程序门 -> java -> 非技术区



三角形问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


三角形问题
发表于:2007-06-27 10:40:33 楼主
给定一个数,判断是否为n*(n+1)/2,如果是能画出三角形
例如:输入3       ,它是n*(n+1)/2中的一个数,
则画出图形为:
*
*   *
输入10:
*
*   *
*   *   *
*   *   *   *
如果输入4,则输出不是能构成三角形的数。
发表于:2007-06-27 13:28:411楼 得分:0

import   java.io.datainputstream;
import   java.io.ioexception;


public   class   test   {


        public   static   void   main(string[]   args)   throws   ioexception   {
                while   (true)   {
                        datainputstream   bis   =   new   datainputstream(system.in);
                        string   s   =   bis.readline();
                        s   =   s.trim();
                        if(s.length()   ==   0)   {
                                continue;
                        }
                        int   in   =   0;
                        try   {
                                in   =   integer.parseint(s);
                        }   catch   (exception   e)   {
                                system.out.println( "输入的不是数字! ");
                                continue;
                        }

                        int   mid   =   (int)math.sqrt(in   *   2);

                        int   level   =   0;
                        if   ((mid   -   1)   *   mid   /   2   ==   in)   {
                                level   =   mid   -   1;
                        }
                        if   (mid   *   (mid   +   1)   /   2   ==   in)   {
                                level   =   mid;
                        }
                        if   ((mid   +   1)   *   (mid   +   2)   /   2   ==   in)   {
                                level   =   mid   +   1;
                        }
                        if   (level   ==   0)   {
                                system.out.println( "输入了不能构成三角形的数! ");
                                continue;
                        }   else   {
                                for   (int   i   =   0;   i   <   level;   i++)   {
                                        for   (int   j   =   0;   j   <=   i;   j++)   {
                                                system.out.print( "*   ");
                                        }
                                        system.out.println( " ");
                                }
                        }
                }
        }
}



快速检索

最新资讯
热门点击