出题人你好,这是我在E题中发现的一个小问题: 当输入的测试样例为 1 1 1 998 2000 时,正确答案应该是由数字1999得出的28,但是我的代码得出的是由数字999得出的27,而我的代码AC了,我的AC代码如下,AC了之后我才发现当start和end长度不一样时我的处理有问题 t = int(input()) for i in range(t): l1,r1,l2,r2 = map(int,input().split()) res = 0 start = l1 + l2 end = r1 + r2 str_start = str(start) str_end = str(end) len_start = len(str_start) len_end = len(str_end) res1 = sum([int(x) for x in str(end)]) if start == end: print(res1) continue elif len_start != len_end: # 这里有问题 cnt = 10**(len_end - 1) - 1 res2 = sum([int(x) for x in str(cnt)]) else: for j in range(len_start): if str_start[j] != str_end[j]: cnt = end - end % 10**(len_end-1-j) - 1 res2 = sum([int(x) for x in str(cnt)]) break print(max(res1,res2))