所以我想编写的程序是添加两个由int组成的字符串S1和S2。 例如:S1 =' 129782004977',S2 =' 754022234930',SUM =' 883804239907' 到目前为止,我已经做到了这一点,但它仍然存在问题,因为它并没有让我整个SUM。
def addS1S2(S1,S2):
N=abs(len(S2)-len(S1))
if len(S1)<len(S2):
S1=N*'0'+S1
if len(S2)<len(S1):
S2=N*'0'+S2
#the first part was to make the two strings with the same len.
S=''
r=0
for i in range(len(S1)-1,-1,-1):
s=int(S1[i])+int(S2[i])+r
if s>9:
r=1
S=str(10-s)+S
if s<9:
r=0
S=str(s)+S
print(S)
if r==1:
S=str(r)+S
return S
答案 0 :(得分:1)
这似乎是家庭作业,所以我不会提供完整的代码,只是一些指示。
您的算法存在三个问题。如果你修复它们,那么它应该可以工作。
10-s
会给你负数,因此所有这些-
都会在总和中出现。将其更改为s-10
9
个。将if s<9:
更改为if s<=9:
,甚至更好,只需else:
r
添加到字符串中,而应该在循环之后的最后添加。此外,不是使用那些复杂的if
语句来检查r
并从s
中减去10,您只需使用除法和模数:r = s/10
和{{1 },或只是s = s%10
。
如果这是不作业:只需使用r, s = divmod(s, 10)
。