请问图二的程序为什么解决不了图一的问题,图三的程序为什么能够得到正确答案,有什么更好的办法吗?
区别在于,如果n是负数,除以正整数100得到的商和余数都不对。比如-3215,除以100得到的商是-33,余数是85。
个人认为更加简单的办法就是将4位整数n取绝对值n2,然后得到两个2位整数a,b,如果原来的4位整数n是负数,则a和b也取负,后面计算都是一样的,就不需要特意为了负数修改了。
def main():
n = int(input("input n: "))
n2 = abs(n)
a, b = n2//100, n2%100
if n<0: a, b = -a, -b
print("{:d} + {:d} = {:d}".format(a,b,a+b))
print("{:d} - {:d} = {:d}".format(a,b,a-b))
print("{:d} * {:d} = {:d}".format(a,b,a*b))
print("{:d} / {:d} = {:2f}".format(a,b,a/b))
print("{:d} // {:d} = {:d}".format(a,b,a//b))
print("{:d} % {:d} = {:d}".format(a,b,a%b))
if __name__ == "__main__":
main()