You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

字符串转整数触发ValueError,如何优化整除10判断逻辑?

解决方案

错误原因

你的代码将所有数字的最后一位拼接成字符串后转为整数,但当数组长度极大时(比如测试用例中N=82051),拼接后的字符串长度超过Python默认的整数字符串转换限制(4300位),执行int(c)时触发ValueError。

优化思路

判断一个数能否被10整除,只需要看它的最后一位是否为0。而你拼接出来的数的最后一位,就是原数组最后一个元素的最后一位。完全不需要拼接所有字符并转换为大整数,直接检查最后一个元素的最后一位即可,既高效又避免了长度限制问题。

修正后的代码

N = int(input())
A = input().split()
# 直接检查数组最后一个元素的最后一位是否为'0'
if A[-1][-1] == '0':
    print("Yes")
else:
    print("No")

补充说明

如果一定要保留拼接逻辑(不推荐),可以修改Python的整数转换长度限制,但这属于冗余操作:

import sys
# 解除长度限制,设为0表示无限制
sys.set_int_max_str_digits(0)

N = int(input())
A = input().split()
a = [i[-1] for i in A]
c = "".join(a)
d = int(c)
print("Yes" if d % 10 == 0 else "No")

但显然第一种方法更高效,时间复杂度从O(N)降到O(1),且避免了不必要的内存占用。

内容的提问来源于stack exchange,提问作者Nishchal Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:47:51