每日一题:由卢卡斯队列引出java四舍五入
一.题目引出
黄金分割数 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 : 笨拙的手指 java
1 : 笨拙的手指 枚举 题目 视频讲解 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中 ...
- 每日一题 LeetCode909. 蛇梯棋 java题解
题目 https://leetcode-cn.com/problems/snakes-and-ladders/ 代码 class Solution {int N;public int snakesAn ...
- 【Java每日一题】20161128
为什么80%的码农都做不了架构师?>>> package Nov2016; import java.util.ArrayList; import java.util.List; ...
- 【Java每日一题】20161123
为什么80%的码农都做不了架构师?>>> 20161122问题解析请点击今日问题下方的"[Java每日一题]20161123"查看 package Nov2 ...
- 【Java每日一题】20170113
20170112问题解析请点击今日问题下方的"[Java每日一题]20170113"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017;p ...
- 【Java每日一题】20170309
20170308问题解析请点击今日问题下方的"[Java每日一题]20170309"查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; ...
- 【Java每日一题】20161219
为什么80%的码农都做不了架构师?>>> package Dec2016; import java.util.Arrays; public class Ques1219 { p ...
- 【Java每日一题】20161018
为什么80%的码农都做不了架构师?>>> 20161017问题解析请点击今日问题下方的"[Java每日一题]20161018"查看 package Oct2 ...
- 【Java每日一题】20170302
为什么80%的码农都做不了架构师?>>> 20170301问题解析请点击今日问题下方的"[Java每日一题]20170302"查看(问题解析在公众号首发,公 ...
最新文章
- C# 从DataSet导出到Excel
- linux 进程间 close-on-exec 机制 简介
- Spring管理事务的若干配置形式
- 玩转Github —— Octotree Chrome插件
- Eclipse项目左上角出现大红色感叹号怎么办?
- 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730
- web安全day43:网络扫描和Nmap的使用
- java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader couldn‘t find “libtinyWRAP.so“
- 证件照制作微信小程序源码
- CSDN下载积分的获取方式
- macbook配置java环境变量_mac上java环境变量配置
- 程序员如何用高逼格科学把妹法则
- PAT 1068 万绿丛中一点红
- 快递查询网站php源码,全国快递查询PHP源码单号自动识别支持国内上百家快递
- 传智播客管家婆java答案_传智播客黑马19年Java全(IDEA) [230G]|百度云|天翼云|GD|OD...
- 分布式算法原理(转)
- 【机器人】基于向量积法的雅可比矩阵求解和应用
- python和C++
- Java基础练习题_05
- PostgreSQL 10.0 preview 主动防御 - 禁止执行全表删除、更新(可配置)