如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。

对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?
【输入格式】
X和Y
对于40%的数据,-1000 <= X, Y <= 1000
对于70%的数据,-100000 <= X, Y <= 100000
对于100%的数据, -1000000000 <= X, Y <= 1000000000
【输出格式】
输出dis(X, Y)
【输入样例】
0 1
【输出样例】
3

还是先提供我自己的思路,这种题我觉得思路很清晰的,因为方向是固定的,这里找到这样的规律:

  • 方向顺序是固定的。向左->向上->向右-向下,一直这样循环
  • 每转换两次方向,在一个方向上的线的长度会加一

用这两个规律就足够了,让点从0开始找,while(true),找到了就打印和结束

public class Main{public static void main(String[] args) {           Scanner sc=new Scanner(System.in);int sum=0,a=0,b=0,len=1,lencount=0;int x=sc.nextInt();int y=sc.nextInt();while(true) {while(lencount<len) {a--;lencount++;sum++;if(a==x&&b==y) {System.out.println(sum);return;}}lencount=0;while(lencount<len) {b++;lencount++;sum++;if(a==x&&b==y) {System.out.println(sum);return;}}lencount=0;len++;while(lencount<len) {a++;lencount++;sum++;if(a==x&&b==y) {System.out.println(sum);return;}}lencount=0;while(lencount<len) {b--;lencount++;sum++;if(a==x&&b==y) {System.out.println(sum);return;}}lencount=0;len++;}}
}

接下来提供别人的思路

dis(0, 1)=3
dis(-2, -1)=9
dis(1, 1)=4


暴力解法:超时 -10^9 ≤ x、y ≤ 10^9 -> 爆int x↓y↑、x↑y↓、x↓y↑、x↑y↓


public class A07_螺旋折线 {// 以 右下角 对角线上的点 为 参照点,测算给定的点到参照点要走的距离public static void main(String[] args) throws FileNotFoundException {Scanner sc = new Scanner(System.in);long X = sc.nextLong(), Y = sc.nextLong();long d = 0; // 距离long n = 0; // 第几圈if (Y > 0 && Math.abs(X) <= Y) { // 点在上面的横线上n = Y; // 等差数列有多少项? Y项d = (Y - X) + (2 * Y); // X的最大值是Y,第一、四象限的距离---2Y} else if (X > 0 && Math.abs(Y) <= X) { // 点在最右边的横线上n = X;d = Y + X;} else if (Y <= 0 && X >= Y - 1 && X <= -Y) { // 点在最下边的横线上n = -Y;d = -(-Y - X);} else if (X < 0 && Y >= X + 1 && Y <= -X) { // 点在最左边的横线上n = -X - 1;d = -(Y - X - 1 - 2 * X - 1);}System.out.println(sum(1L, 2 * n, 1) * 2 - d);}/*** 等差数列求和* * @param a0 首项* @param n  项数* @param d  公差* @return*/private static long sum(long a0, long n, int d) {return (2 * a0 + (n - 1) * d) * n / 2;}
}

【蓝桥杯2018JavaB】螺旋折线相关推荐

  1. 2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - G.螺旋折线

    螺旋折线 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, 1)= ...

  2. 题目 2285: [蓝桥杯][2018年第九届真题]螺旋折线(数论+思维)

    题目: 题目描述 如图所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, 1)=3, ...

  3. 2018蓝桥杯省赛---java---B---7(螺旋折线)

    题目描述 标题:螺旋折线如图p1.png所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis ...

  4. 蓝桥杯第九届省赛JAVA真题----螺旋折线

    标题:螺旋折线 如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, ...

  5. 蓝桥杯:2018年第九届蓝桥杯省赛B组第七题—螺旋折线

    题目描述 如图所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, 1)=3, dis ...

  6. Java实现第九届蓝桥杯螺旋折线

    螺旋折线 题目描述 如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0 ...

  7. 第九届蓝桥杯 螺旋折线

    标题:螺旋折线 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, ...

  8. [蓝桥杯][2018年第九届真题] 递增三元组、螺旋折线、日志统计、全球变暖、乘积最大

    个人题解链接,历届试题,正在更新中~ 题目目录 递增三元组 螺旋折线 日志统计 全球变暖 乘积最大 递增三元组 给定三个整数数组 A = [A1, A2, - AN], B = [B1, B2, - ...

  9. 【Scratch】青少年蓝桥杯_每日一题_9.09_画圆形渐变螺旋

    用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在第十届蓝桥杯国赛赛中. 二.编程实现 绘制一个颜色变化的圆形螺旋﹐画螺旋与画圆形的方法类似.提示∶ 1.画圆形的方法:前进 ...

最新文章

  1. windows加载符号小计
  2. 流量控制与可靠传输机制
  3. php aws s3查看所有文件_国内AWS没有文件系统服务,快来看如何通过EC2挂载S3存储桶替代...
  4. 7.Eclipse中创建新Maven项目
  5. python学习笔记(十三)标准库heapq
  6. wps计算机一级考试提纲,2017计算机一级考试大纲:WPS Office (汇总)
  7. cad标注桩号lisp_cad桩号标注插件下载
  8. Matlab非线性拟合函数——nlinfit
  9. QC的七大手法和八大原则
  10. onlyoffice 在线编辑
  11. linux搭建ntp发包教程,linux 搭建本地ntp服务器
  12. mysqlError: Can't connect to MySQL server on 'localhost' (10061)
  13. OneZero第二周第二次站立会议(2016.3.29)
  14. C++判断一个大于2的整数是否是素数
  15. 手把手教你进行Pycharm活动模板配置
  16. 看纸箱设备厂家如何定义包装纸箱的
  17. eCharts——柱状图中的柱体颜色渐变
  18. win10主题更换_【小A问答】遇到超好看的Win10主题壁纸如何提取?
  19. 数据库SQLserver(课本)
  20. 暑假训练---三棱锥内切球公式及海伦公式

热门文章

  1. vue 选取某月、当月第一天和最后一天处理
  2. Maven依赖之热部署devtools
  3. Springboot热部署失效怎么解决?
  4. 单节1A锂电池充电芯片方案,PD和QC快充充电器5V输入
  5. js-web跨域实现百度地图普通ip定位
  6. 没有任何基础的纯小白cad能学会吗?
  7. 基于python+ffmpeg的视频并发直播压力测试
  8. Java实现基于Socket的负载均衡代理服务器(含六种负载均衡算法)
  9. mysql8 学习笔记
  10. cesium 实现地球自转