在控制台上近似输出圆

题目:在控制台上近似输出圆

思路:半径为r,y为圆的纵坐标,y的范围为(0,2r),设置y的步长为y=y+2,调整椭圆的“胖瘦”,

   在控制台输出,圆心坐标为(r,r),可以推出x的坐标为x=r+Math.sqrt(2XrXy-yXy),

        把得到的double x,返回最接近参数的 long,结果将舍入为整数。最后找到一个纵坐标对应

        的两个横坐标,并输出*号。

程序如下:

   

package zuoye;

//2017.03.17 by小方
public class X0317 {

    public static void main(String[] args) {
        int r=10;
        for (int y=0;y<=2*r;y=y+2)
        {
            long x=Math.round(r+Math.sqrt(2*r*y-y*y));
            for (int i=0;i<=2*r;i++ )
            {
                if (i==x||i==2*r-x)
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }

    }

}

运行结果如下:

posted @ 2017-03-20 10:12  小汛  阅读(161)  评论(0)    收藏  举报