【Python习题】谁先掉进陷阱(保姆级图文+实现代码)

目录

    • 题目
    • 实现思路
    • 实现代码
    • 总结


主要内容是校设课程的习题和课外学习的一些习题。

欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中

题目

谁先掉进陷阱

  • 题目

黄鼠狼和狐狸比赛跳跃,黄鼠狼和狐狸每次跳跃距离不同,黄鼠狼每跳一下的距离是skunk 厘米,狐狸每一跳的距离是fox 厘米。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬
比赛从同一个起点开始,相同方向,同时起跳,跳跃无间隔。赛道上每隔 trap厘米有一个陷阱,若黄鼠狼和狐狸跳跃频率相同,问谁先掉进陷阱?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

  • 输入‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

分三行输入3个整数,分别表示黄鼠狼每跳一下的距离skunk、狐狸每一跳的距离fox和陷阱间距trap‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

  • 输出‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

先掉入陷阱的动物名,一个字符串‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

  • 示例‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬
  • 输入:
    22
    36
    99
  • 输出:
    黄鼠狼

实现思路

要求动物一跳正好跳进了陷阱,也就是求最小公倍数,最小公倍数越小就越早踩到陷阱。

【Python习题】谁先掉进陷阱(保姆级图文+实现代码)_第1张图片
这里先用辗转相除法计算得到了最大公约数,2数相乘后除以最大公约数得到最小公倍数。

欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。

定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(Greatest Common Divisor)缩写为GCD。


实现代码

# @Time    : 2022/3/2 15:26
# @Author  : 南黎
# @FileName: 草稿纸.py

import math
a=eval(input())
b=eval(input())
c=eval(input())

#得到最大公约数
def gcd(a,b):
    if a < b:
        temp = b
        b = a
        a = temp
    remainder = a % b
    if remainder == 0:
        return b
    else:
        return gcd(remainder,b)

#求得最大公倍数,越大越晚被抓到
if a*c/gcd(a,c)<b*c/gcd(b,c):
    print("黄鼠狼")
else:
    print("狐狸")


总结

大家喜欢的话,给个,点个关注!给大家分享更多有趣好玩的Python习题!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-3-1

欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中

【更多内容敬请期待】


你可能感兴趣的:(python,#,python习题,python)