题目:
给定两个任意数字组成的字符串,求乘积,字符可能很大,但是python具有无限精度的整数在这里就不需要考虑这个问题了
下面是简单的实现:
#!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:两个任意字符串乘积 ''' def two_strs_mutiply(one_str, two_str): ''' ''' if one_str[0]=='-': flag1=-1 one_str=one_str[1:] else: flag1=1 if two_str[0]=='-': flag2=-1 two_str=two_str[1:] else: flag2=1 if one_str=='0' or two_str=='0': return 0 else: one=int(one_str) two=int(two_str) res=one*two*flag1*flag2 return res if __name__ == '__main__': one_str_list=['0','120','20','43','89765432138','98594','98765432123'] for i in range(len(one_str_list)-1): one_str,two_str=one_str_list[i],one_str_list[i+1] print one_str,two_str,'----->',two_strs_mutiply(one_str,two_str)
结果如下:
0 120 -----> 0 120 20 -----> 2400 20 43 -----> 860 43 89765432138 -----> 3859913581934 89765432138 98594 -----> 8850333016213972 98594 98765432123 -----> 9737679014735062 [Finished in 0.3s]