请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 2597|回复: 1

第三章课后习题输出近似圆

[复制链接]
发表于 2011-3-30 15:37:04 | 显示全部楼层 |阅读模式
研究了一天终于搞出来了,请大家指教。

package com;
import java.util.Scanner;
public class Round {

public static void main(String[] args) {
  int r=0;
  while (true) {
   System.out.print("请输入一个正整数作为圆的半径:");
   try {
    Scanner scan = new Scanner(System.in);
    r = scan.nextInt();
    if (r<= 0) {
     System.out.println("圆半径不能小于0");
     continue;
    }
    break;
   } catch (Exception e) {
    System.out.println("必须输入一个正整数");
    continue;
   }
  }

  for(int i=0;i<=r;i++){
   printCircle(r,i);
  }//输出上半圆
  for(int i=r;i>=0;i--){
   printCircle(r,i);
  }//输出下半圆
}

static void printCircle(int r,int i){
  int x,y;
  
  x=(r*r)-((r-i)*(r-i));
  y=(int)Math.round(Math.sqrt(x));
  for(int j=1;j<=(r-y);j++){
   System.out.print(" ");
  }//输出第一个*号前的空格
  System.out.print("*");//输出第一个*号
  for(int k=1;k<=2*y;k++){
   System.out.print(" ");
  }//输出两个*号之间的空格
  System.out.println("*");//输出第二个*号
  
}

}
发表于 2011-8-16 16:20:58 | 显示全部楼层
可以实现
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-1-22 02:26 , Processed in 0.221605 second(s), 8 queries , File On.

快速回复 返回顶部 返回列表