【Python训练营】Python每日一练----第28天:鲁卡斯队列(round函数用法)

199 阅读4分钟

「这是我参与2022首次更文挑战的第23天,活动详情查看:2022首次更文挑战」。

📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅2021年度博客之星TOP100,2021年度博客之星领域TOP5,Python领域优质创作者,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++) 💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺 🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈 🌟🌟🌟✨✨✨

题目描述

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 黄金分割数 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 天,希望每天都能见到最棒的你🏅

🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了 ❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~ 在这里插入图片描述 在这里插入图片描述