package com.dailei.fengkuangjava; import java.util.Scanner; public class PrintCircle { /** * @param args */ public static void main(String[] args) { new PrintCircle().circle(); } public void circle() { System.out.print("please input r="); //从键盘读出半径r Scanner str = new Scanner(System.in); int r = str.nextInt(); //开始画圆。 //y为圆上点的纵坐标。 //步长设为2是为了调节屏幕纵横比。由于屏幕的行距大于列距,不进行调节显示出来的将是椭圆。 for (int y = 0; y <= 2 * r; y += 2) { // 定义点的近似横坐标 long x = Math.round(r - Math.sqrt(2 * r * y - y * y)); // 定义相同纵坐标的两个点之间的横坐标距离 long longLength = 2 * (r - x); // 打印圆上的点左边的空格 for (int i = 0; i <= x; i++) { System.out.print(' '); } // 打印圆上同一纵坐标左边的点 System.out.print('*'); // 打印圆上同一纵坐标的两点之间的空格 for (int j = 0; j <= longLength; j++) { System.out.print(' '); } // 打印圆上同一纵坐标右边的点 System.out.println('*'); } } }