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

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

作者: lxqljc | 来源:发表于2019-10-20 16:31 被阅读0次
    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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/btlamctx.html