一.题目引出

黄金分割数 0.6180.6180.618 与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的 0.6180.6180.618 处,墙上的画像一般也挂在房间高度的 0.6180.6180.618 处,甚至股票的波动据说也能找到 0.6180.6180.618 的影子....

黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.6180.6180.618 只是它的近似值,其真值可以通过对 555 开方减去 111 再除以 222 来获得,我们取它的一个较精确的近似值:0.6180340.6180340.618034。

有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!

1 3 4 7 11 18 29 47....称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。

如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18...会发现它越来越接近于黄金分割数!

你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了0.618034一致的精度。

请写出该比值。格式是:分子/分母。比如:29/4729/4729/47。

二.问题分析

由问题可知,最后的结果需要四舍五入与0.618034数值一样

我们都知道JAVA里面Math,round()方法可以进行四舍五入,但是这个只能四舍五入到整数位

System.out.println(Math.round(12.333));//12
System.out.println(Math.round(12.633));//13

这样的话显然不符合我们本题所能达到的要求 ,因此我们应该像其他的方法,其实String中有一个方法为String.format(),方法

其语法和C语言差不多,例如

System.out.println(String.format("%.2f", 12.333)); //12.33
System.out.println(String.format("%.2f", 12.635)); //12.64

其自动进行四舍五入操作,如下打印其实也可以进行四舍五入到指定位的操作

System.out.printf("%.2f\n",12.126);  //12.13
System.out.format("%.2f",12.126);  //12.13

因此之后的操作就很好做了

三.代码实现

public class Main {public static void main(String[] args) {int a = 1;int b = 3;int c = 0;for (int i = 3; i < 99999; i++) {c = a+b;if("0.618034".equals(String.format("%.6f",(float)a/b))){System.out.println(a+"/"+b);break;}a = b;b = c;}}
}

输出结果:

1364/2207

每日一题:由卢卡斯队列引出java四舍五入相关推荐

  1. 寒假每日一题 1 : 笨拙的手指 java

    1 : 笨拙的手指 枚举 题目 视频讲解 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中 ...

  2. 每日一题 LeetCode909. 蛇梯棋 java题解

    题目 https://leetcode-cn.com/problems/snakes-and-ladders/ 代码 class Solution {int N;public int snakesAn ...

  3. 【Java每日一题】20161128

    为什么80%的码农都做不了架构师?>>>    package Nov2016; import java.util.ArrayList; import java.util.List; ...

  4. 【Java每日一题】20161123

    为什么80%的码农都做不了架构师?>>>    20161122问题解析请点击今日问题下方的"[Java每日一题]20161123"查看 package Nov2 ...

  5. 【Java每日一题】20170113

    20170112问题解析请点击今日问题下方的"[Java每日一题]20170113"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017;p ...

  6. 【Java每日一题】20170309

    20170308问题解析请点击今日问题下方的"[Java每日一题]20170309"查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; ...

  7. 【Java每日一题】20161219

    为什么80%的码农都做不了架构师?>>>    package Dec2016; import java.util.Arrays; public class Ques1219 { p ...

  8. 【Java每日一题】20161018

    为什么80%的码农都做不了架构师?>>>    20161017问题解析请点击今日问题下方的"[Java每日一题]20161018"查看 package Oct2 ...

  9. 【Java每日一题】20170302

    为什么80%的码农都做不了架构师?>>>    20170301问题解析请点击今日问题下方的"[Java每日一题]20170302"查看(问题解析在公众号首发,公 ...

最新文章

  1. C# 从DataSet导出到Excel
  2. linux 进程间 close-on-exec 机制 简介
  3. Spring管理事务的若干配置形式
  4. 玩转Github —— Octotree Chrome插件
  5. Eclipse项目左上角出现大红色感叹号怎么办?
  6. 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730
  7. web安全day43:网络扫描和Nmap的使用
  8. java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader couldn‘t find “libtinyWRAP.so“
  9. 证件照制作微信小程序源码
  10. CSDN下载积分的获取方式
  11. macbook配置java环境变量_mac上java环境变量配置
  12. 程序员如何用高逼格科学把妹法则
  13. PAT 1068 万绿丛中一点红
  14. 快递查询网站php源码,全国快递查询PHP源码单号自动识别支持国内上百家快递
  15. 传智播客管家婆java答案_传智播客黑马19年Java全(IDEA) [230G]|百度云|天翼云|GD|OD...
  16. 分布式算法原理(转)
  17. 【机器人】基于向量积法的雅可比矩阵求解和应用
  18. python和C++
  19. Java基础练习题_05
  20. PostgreSQL 10.0 preview 主动防御 - 禁止执行全表删除、更新(可配置)

热门文章

  1. 一个折扣券发放系统的设计思路
  2. 免费开源Odoo系统破解企业数字化转型难题
  3. 关于查找Vue中下标的方法(some和findindex)
  4. 遥感辐射定律中用到的常数的精确值
  5. 倍福---database访问mysql数据库
  6. BENQ23G的彩信发送及编码格分析
  7. java 代码实现日历表
  8. 用计算机弹的软件,你试过用计算器弹琴吗?好玩的音乐计算器App
  9. 别人的Morgan Stanley面试,注重基础,java core、多线程、设计模式、设计程序。。。
  10. 高速串口通信稳定_长虹配套珠峰5G通信装备,保障直播信号稳定高速传输