Java Math类画近似圆
由图分析,左上半圆要打印的最大空格数为R-width,右上半圆要打印的最大空格数为R+width,最小打印空格数为R-width。左下半圆与左上半圆同理,右下半圆与右上半圆同理。
import java.lang.Math;
import java.util.Scanner;
public class Circle
{
public static void main(String[] args)
{
int r;
Scanner sc=new Scanner(System.in);
System.out.print("请输入圆的半径:");
r=sc.nextInt();
for(int i=0;i<=r;i=i+2){//上半圆
int height=r-i;
int width=(int)Math.round(Math.sqrt(r*r-height*height));
for(int j=r-width;j>=0;j--){//左上System.out.print(" ");
}
System.out.print("*");
for(int j=r-width;j<r+width;j++){//右上
System.out.print(" ");
}
System.out.println("*");
}
for(int i=r;i>=0;i=i-2){//下半圆
int height=r-i;
int width=(int)Math.round(Math.sqrt(r*r-height*height));
for(int j=r-width;j>=0;j--){//左下半圆
System.out.print(" ");
}
System.out.print("*");
for(int j=r+width;j>r-width;j--){//右下半圆
System.out.print(" ");
}
System.out.println("*");
}
}
}
运行结果: