派生


私信TA

用户名:dotcpp0727646

访问量:18

签 名:

等  级
排  名 59161
经  验 228
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:如果给出的n非常大,需要循环的次数非常多,导致时间超限。不妨恰定一个范围,使循环次数大大减少。

注意事项:

参考代码:

def b(n):
   s = 0
   for i in range(len(str(n))):
       s += n % 10
       n = n // 10
   return s


def a(n):
   if n > 100:
       for i in range(n-9*len(str(n)),n + 1):
           if i + b(i) == n:
               return False
       else:
           return True
   else:
       for i in range(n + 1):
           if i + b(i) == n:
               return False
       else:
           return True


for i in range(eval(input())):
   if a(i) == True:
       print(i)

 

0.0分

1 人评分

  评论区

主要是一个数的最小生成元最小不会小于本身减去本身位数乘9(当然,这个数肯定要大于18)。假如1234,它的生成元不会小于1234-4*9
2024-03-02 17:38:29
  • «
  • 1
  • »