题目:在控制台上近似输出圆
思路:半径为r,y为圆的纵坐标,y的范围为(0,2r),设置y的步长为y=y+2,调整椭圆的“胖瘦”,
在控制台输出,圆心坐标为(r,r),可以推出x的坐标为x=r+Math.sqrt(2XrXy-yXy),
把得到的double x,返回最接近参数的 long,结果将舍入为整数。最后找到一个纵坐标对应
的两个横坐标,并输出*号。
程序如下:
package zuoye; //2017.03.17 by小方 public class X0317 { public static void main(String[] args) { int r=10; for (int y=0;y<=2*r;y=y+2) { long x=Math.round(r+Math.sqrt(2*r*y-y*y)); for (int i=0;i<=2*r;i++ ) { if (i==x||i==2*r-x) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } } }
运行结果如下: