【java题目】- 给定不同半径r,控制台打印输出圆

2019-10-20  本文已影响0人  lxqljc
image.png
image.png

圆的特点是,圆上的点到圆心的距离都是相等的。所以设起点为(0,0), 圆上的点为(x,y),则圆心位置为(r,r)。
根据点到点的距离公式-> (x - r)^2 + (y - r)^2 = r^2。根据图示分析,我们可以知道 x <= 2*r, y <= 2r。x的范围是
0<= x <= 2r , y 的范围是 0 <= y <= 2r。

假设r的半径是5,则x的取值范围 0<= x <= 10 ,y的取值范围是 0 <= y <= 10。
遍历循环所有x,y的点,找到满足距离公式的点,打印出来即可。

代码如下:
 /**
 * 输入半径
 * @param radius
 */
private  static  void drawCircle(int radius){

    for(int y = 0 ; y <= (2 * radius) ; y++){

        for(int x = 0 ; x <= (2 * radius) ; x++){
           //这里实际上输出的是一个正方形
           // System.out.print(" * ");

            if(Math.pow(x - radius,2) + Math.pow(y - radius,2) == Math.pow(radius,2)){
                //由于控制台有默认行距,导致打印不像圆,所以调整了一下,在*号前后添加空格
                System.out.print(" * ");
            }else{
                System.out.print("  ");
            }
        }
        //换行
        System.out.println();
    }
}
image.png
上一篇 下一篇

猜你喜欢

热点阅读