如何编写一个将接受数字的程序,并通过不将数字除以5来检查其是否可以被5整除(在python中)

时间:2019-05-12 09:41:22

标签: python python-3.x

在此代码中,我必须从用户处获取输入,并说输入是否可被5整除,但不使用该代码 user % 5 == 0

4 个答案:

答案 0 :(得分:4)

赞:

def f(x):
  return (x % 10) in (0, 5)

或者这个:

def g(x):
  return x == x // 5 * 5

或者这很慢:

def h(x):
  if x < 0:
    x = -x
  while x >= 5:
    x -= 5
  return x == 0

或者这个(也很慢,但比h快):

def i(x):
  return str(x)[-1] in '05'

或者这个:

def j(x):
  return str(x << 1).endswith('0')

还有更多解决方案。

答案 1 :(得分:1)

t = int(input())
print(t/5==t//5)

或使用

def f(x):
    return (t/5==t//5)

如果数字可以被5整除,则将返回true或false。

PS。如@Pts所指出的,如果数字太大(浮点数错误),则此代码在一定长度的数字(10 ^ 15)内有效。

en.wikipedia.org/wiki/IEEE_754#Basic_and_interchange_formats表示64位浮点数的精度为53位,因此绝对值小于2 ** 53的数字t将起作用,其他数字可能会失败

答案 2 :(得分:1)

def main() :
 x = int(input("enter the number"))
 if x // 5 * 5 == x :
    print("yes")
 else:
    print("no")
main()

这有效

答案 3 :(得分:0)

我自然会想到这样的东西:

def divisible(user, x):
    if (x > user or x <= 0):
        return False
    while (user > 0):
            user -= x
    return user == 0

不要忘记检查x是否为负值,并且低于用户