解题思路:如果给出的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 人评分
printf基础练习2 (有点不明白)浏览:887 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:651 |
DNA (C语言描述,蓝桥杯)浏览:1653 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:866 |
C语言训练-自守数问题 (C语言代码)浏览:798 |
小O的乘积 (C语言代码)浏览:1062 |
C语言程序设计教程(第三版)课后习题10.7 指针(C语言代码)浏览:597 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言描述——递归算法)浏览:1150 |
简单的a+b (C语言代码)浏览:536 |
【蟠桃记】 (C语言代码)浏览:647 |