package Day31;
//圆的方程:x^2+y^2=r^2
//由于默认y=sqrt(r^2-x^2)是double类型
//在判断y是不是整数
import java.util.*;
public class Test {/*** @param args*/static int count=0;public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(System.in);int s = sc.nextInt();for(int x=(int)(-Math.sqrt(s));x<=Math.sqrt(s);x++)    {for(int y=(int)(-Math.sqrt(s));y<=Math.sqrt(s);y++){if(x*x+y*y==s){count++;// System.out.println(x+","+y);}}}System.out.println(count);}}
//上述方法复杂度很高,下面是牛人的方法
package Day31;
import java.util.*;
//很聪明的解题思路,由于圆上除了原点特殊,其他都是关于x,y轴对称,只要求得所有满足条件的正的x,y然后乘以4即可,考虑原点的特殊性,而且一定有原点这点
//对于x,y的取值只取一头就可以了public class Test1{/*** @param args*/static int count=0;public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(System.in);int s = sc.nextInt();for(int x=0;x<Math.sqrt(s);x++)//只考虑x=0,就行了。对于x,y的取值只取一头就可以了{double y=Math.sqrt(s-x*x);if((int)y==y){count++;//  System.out.println(x+","+y);}}// System.out.println(count);System.out.println(count<<2);//左移2相当于乘以4}}//自己再次修改
package Day31;
import java.util.*;
//优化
//解题思路:由于圆上的点都是成对对称的,除了在原点这一例外。
public class Test2{/*** @param args*/static int count=0;public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(System.in);int s = sc.nextInt();for(int x=(int) -Math.sqrt(s);x<=(int)Math.sqrt(s);x++)    {double y=Math.sqrt(s-x*x);if((int)y==y){count++;if(x==0){count=count-1;}System.out.println(x+","+y);}}System.out.println(count*2);//System.out.println(count<<2);}}

有一个圆心在坐标原点的圆,知道圆的半径的平方,认为在圆上的点而且横纵坐标都是整数的点是优雅的,现在想寻找一个算法计算出优雅的点的个数。

找优雅点(原点在圆心的圆上的整数点)相关推荐

  1. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  2. c++ 圆上任意点坐标计算_已知圆上任意三点坐标如何编程来计算这个圆的圆心和半径...

    在过去的一周时间里一直在计算师兄交代的任务 ,啥都没学,就一直在干这活.其中呢,我想的一个算法中就用到了本文中的这个小知识(主要就是线性代数和高中的一些知识结合起来).师兄说做的这个东西的内容要保密, ...

  3. 由圆上三点确定圆心和半径(附PythonMatlab程序)

    更多阅读:sppy.site 背景 如何计算曲线 y ( x ) ~y(x)~  y(x) 上的曲率,而曲线是由若干离散点构成.我的第一反应是根据离散点差分得到一阶导数 y ′ ~y'~  y′ 和二 ...

  4. 数学问题-圆上某点沿圆心旋转后的坐标关系式

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 问题说明 近期项目中有涉及到圆相关的公式,其中有一个内容是计算圆上某点沿圆心旋转后的坐标,这个虽 ...

  5. 小程序转盘抽奖,已知圆心、半径、角度求圆上点的坐标

    因公司的需求,要在小程序语音房内部迭代一个真心话大冒险的功能,也等同于幸运转盘: 业务场景: 发送一个socket,拿到响应的结果,根据返回的数值开始启动幸运转盘,由于转盘上的人数不是固定的,所以要根 ...

  6. photoshop 定圆心画圆(形状或选区)

    1.定圆心:显示网格,标尺,对齐到参考线.网格.在上方标尺拉出一条参考线,再从左边标尺拉出一条参考线,两条参考线调整到交叉,这个交叉点就是"圆心"了. 2.画的时候,同时按住shi ...

  7. 2019 ICPC 上海站网络赛 K.Peekaboo (圆上整点)

    https://nanti.jisuanke.com/t/41421 题意:给定平面上两个点到原点之间的距离aaa和bbb以及这两点之间的距离ccc,且这两点的坐标均是整数,求该两点可能的坐标,按字典 ...

  8. 两个相离圆上各取一点P、Q,求线段PQ中点M的轨迹。

    中点轨迹多种表现形式 来源:[南通]张海洋(1531861160) 9/17/2021 6:07:47 PM 题目:两个相离圆上各取一点P.Q,求线段PQ中点M的轨迹. 1. 构造坐标系 不妨取一个圆 ...

  9. python怎么计算圆_python根据圆的参数方程求圆上任意一点的坐标

    from math import cos, sin,pi x0,y0=0,0 r=4.0 angle=-25 x1 = x0 + r * cos(angle * pi / 180) y1 = y0 + ...

最新文章

  1. 多个tab可以组成一个表单吗 js_11个表单设计小技巧
  2. php 页面生成外部链接,php 获取网页外部链接正则表达式
  3. golang hmac的sha1加密例子
  4. Permission denied error: unable to index file .vs/Trip2015/v15/Server/sqlite3/db.lock fatal: adding
  5. 牛客java面试题总结版(三)
  6. js List 对象封装【原创】
  7. 页面 接收跳转数据_【实战案例】在线教育渠道落地页数据分析
  8. pytorch 查看参数是否被训练 require_grad()
  9. c语言常用字符串处理函数6,【总结】C语言中常见的字符串处理函数
  10. (3.13)mysql基础深入——mysql日志分析工具之mysqlsla【待完善】
  11. 实时计算Flink 快速入门 —— 步骤二:注册上下游存储
  12. API接口在线管理(Swagger和SosoApi)
  13. springboot+vue实现excel导入-------去重
  14. win10中Elan触摸板启用“双指点击打开右键菜单“与“双指滚动“方法总结
  15. 这个英文语法校正插件很赞!可以校正邮件,也可以校正论文
  16. 普通路由器改4g路由器_4G工业路由器将加速工业物联网发展进程
  17. 【职业人的自我修炼十项原则】
  18. Mysql Unique Key 报错 Duplicate
  19. 关于工业级GPU C-model所使用的性能模拟器(preformance simulator)
  20. ArcGIS Earth 1.11版本发布啦!

热门文章

  1. fsck命令使用详解
  2. iPhone12销量惊人,两个月就冲到5G手机市场前二
  3. Smobiler 仿美柚APP个人主页
  4. c语言日期间的天数,C语言计算两个日期之间的天数
  5. Trunc函数日期取整
  6. macOS 系统Evernote(印象笔记) 迁移到语雀
  7. Go语言五大主流web框架
  8. 2个步骤快速提升品牌的用户忠诚度!
  9. 教你怎么图片等比例放大缩小超过屏幕大小
  10. java幸运抽奖--------奖客富翁管理系统