PAT 甲级1001 要求输入两个整数,使得两个整数的合按照千分位逗号分割后返回,如:
输入-1000000 9
返回 -999,991
我的代码如下:
def split_num(a,b):
sum1=int(a)+int(b)
sum4=abs(int(sum1))
sum2='%d' %sum4
sum3=''
h_sum2=len(sum2)%3
if h_sum2==0:
h_sum2=3
i=3
j=0
while(i<len(sum2)):
j=j-3
sum3=','+sum2[j:]+sum3
i=i+3
sum3=sum2[:h_sum2]+sum3
if sum1>0:
sum3=sum3
elif sum1==0:
sum3=0
else :
sum3='-'+sum3
return sum3
if __name__ == "__main__":
a,b=input().split()
print(split_num(a,b))
exit(0)
PAT给我的评价是部分正确
我想知道是哪里写的不够完善吗。。
问题出在
while(i<len(sum2)):
j=j-3
sum3=','+sum2[j:]+sum3
i=i+3
你打印一下你的sum3
我帮你改了一下那个部分,你可以看一眼,其余部分没动
def split_num(a,b):
sum1=int(a)+int(b)
print(sum1)
sum4=abs(int(sum1)) # 绝对值
sum2='%d' %sum4
sum3=''
h_sum2=len(sum2)%3 # 前面从第几位开始有逗号
if h_sum2==0:
h_sum2=3
print(h_sum2)
i=3
j=0
while(i<len(sum2)):
j=j-3
if j == -3:
sum3 = ','+sum2[j:]+sum3
else:
sum3=','+sum2[j:j+3]+sum3
i=i+3
sum3=sum2[:h_sum2]+sum3
if sum1>=0: # 处理符号
sum3=sum3
else :
sum3='-'+sum3
return sum3
if __name__ == "__main__":
a,b='-1111111 9'.split() #input().split()
print(split_num(a,b))
exit(0)
1111111 9
1,111120,120
错的,你可以多输入几个测试一下
最简单的方法:
def split_num(a,b):
sum1=int(a)+int(b)
return format(sum1, ',')
if __name__ == "__main__":
a,b=input().split()
print(split_num(a,b))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632