要求:使用"*"画出空心圆。
public class MakeCircular {
/**
* 使用“*”画出空心圆 <br>
* pow(X - a) + pow(Y - b) = pow(r) <br>
* 定圆心在(0,0),那么a=0,b=0. <br>
* 再定r=10,即pow(X)+pow(Y)=100
*/
public static void main(String[] args) {
//半径
int r = 10;
//Y轴从上到下
for (int y = r; y >= (-1 * r); y--) {
/*
* 求X值。
* 由于显示屏横竖间距不等,横比较窄,故将X扩大(这里取2.2),
* 使得圆中间的空白(2x个空格)也被扩大。
*/
int x = (int) (2.2 * Math.sqrt(r * r - y * y));
/*
* 打印左边的空白。
* r*2.5也可以是40,50或r*4等,只要保证大于等于x的最大值就好。
* 我们不在乎r*2.5实际是多少,因为我们不在乎左边的空白,
* 只在乎圆中间的空白是2x个就好。
*/
for (int i = 0; i <= r*2.5 - x; i++) {
System.out.print(" ");
}
System.out.print("*");
/* 打印圆中间的空白(圆中间有2x个空格)*/
for (int i = 0; i <= 2*x; i++) {
System.out.print(" ");
}
System.out.print("*");
System.out.println();
}
}
}
效果:
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
分享到:
相关推荐
C语言的100个经典算法,涉及到的都是编程常用到的。排序,求和,阶乘等。
关于C语言的一系列有趣的算法,有编写好的算法代码,大家可以下载看看,很好玩的~
用 C++ 编写出中点算法 画出圆 椭圆 直线 语言简单易懂
计算机图形学原理课,用C语言实现DDA算法画直线,实验操作,下载后直接用VC或者VC++打开工作空间即可。
C语言经典算法大全
C语言数值算法程序大全
趣味算法 清晰版 PDF c语言版,值得收藏,本人加了目录更容易定位!原创
python算法趣味题目.doc
C语言常用算法源代码C语言常用算法源代码C语言常用算法源代码C语言常用算法源代码
C++语言经典、实用、趣味编程百例精解\C++经典程序200例、c语言经典算法100例 超经典,赶快下吧!
c语言经典算法 C语言 算法 c语言经典算法 C语言 算法 c语言经典算法 C语言 算法 c语言经典算法 C语言 算法
C语言经典算法题目及答案.pdf
C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法
计算机图形学 Bresenham完整算法 画直线、椭圆和圆.doc
c语言100个经典算法 c语言经典算法100例 很经典
java趣味算法
计算机图形学__Bresenham完整算法_画直线、椭圆和圆.docx
用C语言实现MUSIC算法下的DOA估计
计算机图形学中的 中点画椭圆算法 C语言程序代码 成功运行