第45期-999除法

1 问题描述

输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。

2 解题思路

  • 第一步: 首先输入一个数,input函数
  • 第二步: 判断该数是否为奇数
  • 第三步: 用无限循环,从一个九开始除以刚刚的奇数求余
  • 第四步: 若余不为0则不能整除,增加九的数量
  • 第五步: 注意:5的倍数无法被9的倍数整除,会陷入无限循环

3 解题方法

n = int(input('请输入一个奇数:'))
def b():
    global n
    if n%2==0:
        n = int(input('您输入的不是奇数,请输入一个奇数:'))
        return b()
    if n%5==0:
        n = int(input('无解,请重新输入:'))
        return b()
    else:
        return c(n)
def c(n):
    x = 10
    while True:
        if (x - 1) % n == 0:
            print(f'至少{len(str(x-1))}个9除以{n}的结果为整数')
            break
        else:
            x *= 10
b()
View Code

第1行: 使用input函数提醒用户输入一个奇数并转化为整数类型赋值给n
第2行: 创建函数b()用于判断是否是奇数或者是5的倍数
第3行: 引入全局变量n
第4-5行: 若输入的是偶数,提醒用户重新输入一个奇数并转化为整数类型赋值给n
第6行: 重新用函数b()判断是否是奇数或者是5的倍数
第7-8行: 若输入的是5的倍数,提醒用户重新输入一个奇数并转化为整数类型赋值给n
第9行: 重新用函数b()判断是否是奇数或者是5的倍数
第10行: 其他情况下输入的便都是满足题意的奇数了,使用c(n)函数进行解题
第11行: 创建函数c()用于判断多少个九是输入的数的倍数,输入的数n作为自变量
第12行: 由于9、99、999等都可以看作是10-1、100-1、1000-1,所以可以使用10来作为初始数
第13、17-18行: 无限循环直到找到可以整除的9的倍数为止
第14-16行: 如果是可以整除的9的倍数,打印结果并结束循环
第19行: 使用b()函数来进行判断

代码运行结果为:
image.jpg

posted @ 2022-01-06 17:56  LG03  阅读(198)  评论(0编辑  收藏  举报