1 import java.lang.Math;
2 public class Print_Circle {
3 public static void main(String[] args) {
4 paint(10); //半径10
5 }
6 public static void paint(int r) {
7 //假定圆心在坐标(r,r);
8 int y = r * 2; //y的坐标开始
9 int x = 0;
10 int c = 0; //中间空格数量
11 int z = 2; //每行递减量
12 for (int j = r * 2; j >= 0; j=j-z) {
13 x = getX(r, y);
14 System.out.print(getSpace(x) + "*");
15 c = (r-x)*2;
16 System.out.println(getSpace(c) + "*");
17 y-=z;
18 }
19 }
20 public static int getX(int r, int y) {
21 //解圆标准方程的
22 int x = y - r;
23 double t = Math.sqrt((r * r) - (x * x));
24 return (int) Math.round(r-t);
25 }
26 public static String getSpace(int i) {
27 String s = "";
28 for (int j = 0; j < i; j++) {
29 s += " ";
30 }
31 return s;
32 }
33 }