通过API文档查询Math类的方法,打印出如右所示的近似圆,只要给定不同半径,圆的大小就会随之发生改变。
import java.util.Scanner; public class Base { public static void main(String[] args) { Scanner bj = new Scanner(System.in); System.out.print("请输入圆的半径:"); int r = bj.nextInt() ;//半径 double R = 2*r;//直径 for (int i = 0; i <= R; i += 2) { double y; if (i <= r) y = r - i ; else y = i - r; double x = Math.round(Math.sqrt(r * r - y * y)); //循环输出 for (int j = 0; j < r - x; j++) { System.out.print(" "); } System.out.print("*"); for (int j = 0; j < 2 * x; j++) { System.out.print(" "); } System.out.println("*"); } } }
import java.util.Scanner; public class Main { public static void main(String [] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入半径:"); int r = sc.nextInt(); for(int i = 0; i<=2*r;i++){ for(int j = 0; j<=2*r+1;j++){ double dis = Math.sqrt(Math.pow(r,2)-Math.pow(Math.abs(i-r),2)); long dist = Math.round(dis); if(j==(r-dist)||j==(r+1+dist)){ System.out.print("*"); } else{ System.out.print(" "); } } System.out.print("\n"); } } }
public class Main {
public static void main(String[] args) {
int r=30;
double x;
for(int y=r;y>=(-r);y-=3)
{
x = Math.round(Math.sqrt(r * r - y * y));
for(int i=0;i<=(2*r);i++) {
if (i == (r - x) || i == (r + x)) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
import java.util.Scanner; /** * 通过API文档查询Math类的方法,打印出如右所示的近似圆, * 只要给定不同半径,圆的大小就会随之发生改变。 * @author dongzhi * */ public class ApproximateCircle { public static void main(String args[]) { ApproximateCircle ac = new ApproximateCircle(); System.out.println("Please enter the radius of the circle:"); @SuppressWarnings("resource") Scanner input = new Scanner(System.in); int radius = input.nextInt(); //radius ac.PrintCircle(radius); } public void PrintCircle(int r) { double R = 2*r; // diameter for (int i = 0; i <= R; i += 2){ double y; if (i <= r) { y = r - i ; }else { y = i - r; } double x = Math.round(Math.sqrt(r * r - y * y)); //Loop output for (int j = 0; j < r - x; j++) { System.out.print(" "); } System.out.print("*"); for (int j = 0; j < 2 * x; j++) { System.out.print(" "); } System.out.println("*"); } } }
import java.lang.Math; //需要用到Math类的平方根与取整方法以及绝对值 import java.util.Scanner; /* * @author * @date 2019/03/02 * 打印输出近似圆 */ public class Test3_PrintCircleByMath { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入圆的半径:"); double radius = sc.nextDouble(); int i,j; //用于打印近似圆 for (i=1;i<=Math.floor(2*radius);i+=2){ for (j=0;j<=Math.ceil(2*radius);j++){ double RemarkDistance = Math.sqrt(radius*radius-(radius-i)*(radius-i)); int FirstRemark,SecondRemark; FirstRemark = (int) Math.ceil(radius-RemarkDistance); //计算第一个和第二个*的位置 SecondRemark = (int) Math.floor(radius+RemarkDistance); if ((j == FirstRemark) || (j == SecondRemark)){ System.out.print("*"); } else{ System.out.print(" "); } } System.out.println(); } } }