Codeforces题目Divisibility Problem(1328A)本地正常但提交失败求助
Codeforces 1328A(Divisibility Problem)提交失败问题解决
问题情况
我在完成Codeforces上的Divisibility Problem(1328A)题目时,遇到了问题:代码在Visual Studio中运行能得到预期输出,但提交至Codeforces平台后所有测试用例全部失败。
题目要求
给定t组测试用例,每组包含两个整数a和b,需找出最小的非负整数k,使得(a + k)能被b整除。
我的原代码
t = int(input()) lst = [] for i in range(0,t): nums = list(map(int,input().split())) result = (nums[0] % nums[-1]) lst.append(result) for i in range(0,len(lst)): print(lst[i])
问题原因
原代码逻辑错误,直接输出a % b的结果,但这并非题目要求的k值:
- 当
a % b == 0时,k应为0(此时a本身就能被b整除) - 当
a % b != 0时,k应为b - (a % b)(这样a+k刚好是b的倍数)
比如测试用例a=10、b=3,原代码输出1,但正确的k是2(10+2=12能被3整除)。
修正后的代码
t = int(input()) for _ in range(t): a, b = map(int, input().split()) remainder = a % b print(0 if remainder == 0 else b - remainder)
说明
修正后的代码直接针对每组测试用例计算正确的k值,无需额外存储结果列表,逻辑更简洁且符合题目要求,提交后可通过所有测试用例。
内容的提问来源于stack exchange,提问作者srishti raj
相关产品推荐
相关产品推荐

