【Python训练营】Python每日一练----第28天:鲁卡斯队列(round函数用法)
📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅2021年度博客之星TOP100,2021年度博客之星领域TOP5,Python领域优质创作者,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨
@TOC
题目描述
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
黄金分割数 0.618 与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的 0.618 处,墙上的画像一般也挂在房间高度的 0.618处,甚至股票的波动据说也能找到 0.618的影子…
黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618 只是它的近似值,其真值可以通过对 55开方减去 1 再除以 2 来获得,我们取它的一个较精确的近似值:0.618034。
有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!
1 3 4 7 11 18 29 47… 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18…会发现它越来越接近于黄金分割数!
你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与 0.618034 一致的精度。
请写出该比值。格式是:分子/分母。比如:29/47。
运行限制
最大运行时间:1s
最大运行内存: 128M
解题思路
- 求两个数相除的结果与黄金比例小数进行比较,这里我们可以运用round()函数去做,会比较简单一些;
round(a/b,6)
- 因为题目中说从第三个数字开始,后面的数字是前面两个数字的和,所以说我们开始的时候可以先把前两个数字设出来,然后后续再让让前两个数字相加得到第三个数字。
c = a+b a = b b = c
源码分享
# Time : 2022/2/23 12:31
# File : 鲁卡斯队列.py
# Author : 是Dream呀!
# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
a = 1
b = 3
while round(a/b,6) != 0.618034: # round(参数,保留的小数位),遵循四舍六入五成偶原则
c = a+b
a = b
b = c
print(str(a)+'/'+str(b))
学习总结
round(参数,保留的小数位),该函数遵循四舍六入五成偶原则,被约的5前面的数值若为偶数时,则会舍弃5,若5前面的数值为奇数时则进一,若5后面有非0数值时则都会进一,round()中默认保留小数位是0,即当只传一位参数时默认返回的是整数
实例:
print(round(3.545,2))
print(round(3.535,2))
print(round(4.50))
print(round(3.50))
print(round(3.5))
print(round(4.5))
输出:
3.54
3.54
4
4
4
4
进程已结束,退出代码0
简而言之:round()函数进制问题时,判断是否进制时,除5之外的所有数字都是一样的,当5后面有数字时,且不为0时也都和正常一样进制。当5后面没有数字或者是0时:5前面的数字若是奇数则+1,是偶数则不变。
🏅今天是我在Python训练营的第 28 天,希望每天都能见到最棒的你🏅
🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
- 点赞
- 收藏
- 关注作者
评论(0)