A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震阳老师 金牌黑马   /  2012-9-23 10:23  /  1379 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

提示: 该帖被管理员或版主屏蔽
签名被屏蔽

6 个回复

倒序浏览

回帖奖励 +2

我写写看
回复 使用道具 举报
  1. import java.math.BigDecimal;

  2. public class Circle
  3. {
  4. /**
  5. * 半径
  6. */
  7. public int radius;

  8. /**
  9. * 一排点数 = 半径*2+1
  10. */
  11. public double point;

  12. public static void main(String[] args)
  13. {
  14. Circle circle = new Circle(6);
  15. circle.show();
  16. }

  17. Circle(double dou)
  18. {
  19. radius = changeValue(dou);//四舍五入
  20. point = radius*2 +1;//一排点数 = 半径*2+1
  21. }

  22. /**
  23. * 打印圆
  24. *
  25. */
  26. private void show()
  27. {
  28. for(int i = 0;i<point;i++)
  29. {
  30. for(int j = 0;j<point;j++)
  31. {
  32. if(isCircle(j,i))
  33. System.out.print(" *");
  34. else
  35. System.out.print(" ");
  36. }
  37. System.out.print("\n");
  38. }
  39. }

  40. /**
  41. * 判断某点是否是圆的点
  42. * @return true:是;false:不是
  43. */
  44. private boolean isCircle(int x, int y)
  45. {
  46. x = x-radius;
  47. y = y-radius;
  48. double temp = square(radius) - square(y);
  49. int z = ((int)Math.sqrt(temp)); // 用圆的公式求星号离x轴的长度
  50. if(x == z || x== -z)
  51. {
  52. return true;
  53. }
  54. else
  55. {
  56. return false;
  57. }
  58. }

  59. /**
  60. * 四舍五入
  61. * @param dou double
  62. * @return double
  63. */
  64. public int changeValue(double dou)
  65. {
  66. BigDecimal bdBigDecimal = new BigDecimal(String.valueOf(dou)).setScale(0, BigDecimal.ROUND_HALF_UP);
  67. return bdBigDecimal.intValue();
  68. }
  69. /**
  70. * 求平方
  71. * @param x int
  72. * @return 平方值
  73. */
  74. public double square(int x)
  75. {
  76. return (double)(x*x);
  77. }
  78. }
复制代码

评分

参与人数 1黑马币 +20 收起 理由
王震阳老师 + 20 赞一个!

查看全部评分

回复 使用道具 举报
解决的思路应该是把这个圆拆分成四分之一圆,剩下的都是对称的,用极坐标法,计算不同的“*”的位置。
回复 使用道具 举报
尤圣回 发表于 2012-9-23 10:26
我写写看

C:\Documents and Settings\Administrator\桌面\1.jpg这是我运行的结果,不错。赞一个。
回复 使用道具 举报
我看不到你的
回复 使用道具 举报
尤圣回 发表于 2012-9-23 11:51
我看不到你的

我不会截图上去呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马