如何用java for循环 实现用*打印出个圆形

tteesstt 2008-07-05 07:51:05
RT,不是GUI的,是文本打印出来,高度不限,差不多就行了,比如30?50?
...全文
810 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyuanchao 2011-06-13
  • 打赏
  • 举报
回复
我是初学者,我也来一个我写的程序
public class Circle {
public static void main(String args[]){
int r = 6;
int i,j,k;
int d = 2 * r;
for(i = 0;i < d; i++){
int y = Math.abs(r - i);
int x = (int)Math.sqrt(r * r - y * y);
for(j = 0; j < (r - x); j ++){
System.out.print(" ");
}
System.out.print("*");
for(k = (r - x + 1) ;k < (r + x);k ++){
System.out.print(" ");
}
System.out.println("*");
}
}
}
英有尽有 2008-07-07
  • 打赏
  • 举报
回复
"* " : " "
这里多打几个空格就好了
huangjn213 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 java2000_net 的回复:]
Java code public static void circle(int r) {
int x;
int rr = r * r;
for (int y = r; y >= -r; y--) {
x = (int) (Math.sqrt(rr - y * y));
show(r, x);
}
}

public static void show(int r, int x) {
for (int i = -r; i < r; i++) {
System.out.print(Math.abs(i) == x ? "*" : " ");
}
System.out.println();
}



完善版本
[/Quote]

*
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
怎么打出来是这样的
老紫竹 2008-07-05
  • 打赏
  • 举报
回复
  public static void circle(int r) {
int x;
int rr = r * r;
for (int y = r; y >= -r; y--) {
x = (int) (Math.sqrt(rr - y * y));
show(r, x);
}
}

public static void show(int r, int x) {
for (int i = -r; i < r; i++) {
System.out.print(Math.abs(i) == x ? "*" : " ");
}
System.out.println();
}


完善版本
英有尽有 2008-07-05
  • 打赏
  • 举报
回复

int r = 100 ;
int rr = r * r ;
for(int i = r ; i >= -r ; i -- ) {
for(int j = -r ; j <= r ; j ++) {
if(Math.abs(j) == (int) Math.sqrt(rr - i * i))
System.out.print("* ") ;
else
System.out.print(" ") ;
}
System.out.println() ;
}
sagezk 2008-07-05
  • 打赏
  • 举报
回复
有点意思
!markit!
apples_009 2008-07-05
  • 打赏
  • 举报
回复
老紫出来了..顶下..
vtudiv 2008-07-05
  • 打赏
  • 举报
回复
唉比庆叔的差多了.....

public static void drawCircle(int r)
{
final int r2=r*r;
int j=0;
for(int i=0;i<r;i++)
{
j=0;
int a=(int)Math.sqrt(r2-(r-i)*(r-i));
for(;j<r-a;j++)
{
System.out.print(' ');
}
System.out.print('*');
for(;j<r+a;j++)
{
System.out.print(' ');

}
System.out.println('*');

}

for(int i=r;i>=0;i--)
{
j=0;
int a=(int)Math.sqrt(r2-(r-i)*(r-i));
for(;j<r-a;j++)
{
System.out.print(' ');
}
System.out.print('*');
for(;j<r+a;j++)
{
System.out.print(' ');

}
System.out.println('*');
}
}
zidasine 2008-07-05
  • 打赏
  • 举报
回复
http://www.java2000.net/viewthread.jsp?tid=6909#T6930
这里有答案 去看看
老紫竹 2008-07-05
  • 打赏
  • 举报
回复
  public static void circle(int r) {
int x;
int rr = r * r;
for (int y = r; y >= -r; y--) {
x = (int) (Math.sqrt(rr - y * y));
show(r, x);
}
}

public static void show(int r, int x) {
for (int i = -r; i < -x; i++) {
System.out.print(" ");
}
System.out.print("*");
if (x > 0) {
for (int i = -x+1; i < x; i++) {
System.out.print(" ");
}
System.out.print("*");
}
System.out.println();
}
genius_dragon 2008-07-05
  • 打赏
  • 举报
回复
MARK
值得收藏

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧