|
最近学了一下python,刚学时感觉很方便,但后来越学越觉得还是没C/C++好,角本语言只是方便,快速,适合一些公司应用,但不利于我们深入学习,所以我把主要精力还是放在C/C++上,学习不仅要学应用,深入理解其原理更为重要,但我还是把最近用python写的这个算法发上来。希望高手来指点,也可以让新手了解下角本的方便快速的优点。
#!/usr/bin/python # Filename: bignumoperation.py import string # remove frontal zero def remove_zero(numstr=''): strlen = len(numstr) if strlen > 0: for i in range(0, strlen): if numstr[i] == '0': continue else: break if i == strlen: numstr='0' elif i > 0: numstr = numstr[i:] return numstr # validate num def validate_numstr(numstr=''): strlen = len(numstr) flag = 0 if strlen == 0: return 0 else: for i in range(0, strlen): if ((numstr[i] < '0') or (numstr[i] > '9')): return 0 return 1 # x is or not biger y ( x and y are the same long ) def is_big(x='', y=''): ret = 0 strlen = len(x) for i in range(0, strlen): if ( int(x[i]) < int(y[i]) ): ret = 0 break elif ( int(x[i]) > int(y[i]) ): ret = 1 break else: # == ret = 1 return ret # add def operation_add(x='', y=''): # print x[len(x)-1] # print y[len(y)-1] if ((validate_numstr(x)) and (validate_numstr(y))): x = remove_zero(x) y = remove_zero(y) retString = '' flag = 0 tmp = 0 position_x = len(x) - 1 position_y = len(y) - 1 while ((position_x >= 0) or (position_y >= 0)): if (position_x < 0): retString = y[position_y] + retString position_y -= 1 else: if (position_y < 0): retString = x[position_x] + retString position_x -= 1 else: # print x[position_x] # print y[position_y] # tmp = 1 tmp = int(x[position_x]) + int(y[position_y]) + flag retString = str(tmp % 10) + retString flag = tmp / 10 position_x -= 1 position_y -= 1 else: if flag == 1: retString = '1' + retString else: print "Parameter is not legal!" return "error" return retString # multiply def operation_multi(x='', y=''): if ((validate_numstr(x)) and (validate_numstr(y))): x = remove_zero(x); y = remove_zero(y); flag = 0 tmp = 0 position_y = len(y) - 1 retString = '0' while (position_y >= 0): position_x = len(x) - 1 tmpString = '' while (position_x >= 0): tmp = int(x[position_x]) * int(y[position_y]) + flag tmpString = str(tmp % 10) + tmpString flag = tmp / 10 position_x -= 1 else: if flag > 0: tmpString = str(flag) + tmpString for i in range(0, len(y)-1-position_y): tmpString = tmpString + '0' retString = operation_add(retString, tmpString) position_y -= 1 else: print "Parameter is not legal!" return "error" return retString def operation_sub(x='', y=''): if ((validate_numstr(x)) and (validate_numstr(y))): x = remove_zero(x) y = remove_zero(y) retString = '' negative = 0 flag = 0 tmp = 0 position_x = len(x) - 1 position_y = len(y) - 1 if ( position_x < position_y ): swap = x x = y y = swap negative = 1 elif ( position_x == position_y ): if ( is_big(x, y) == 0 ): swap = x x = y y = swap negative = 1 while ( (position_x >= 0) ): if ( position_y < 0 ): tmp = int(x[position_x]) - flag position_x -= 1 else: tmp = int(x[position_x]) - flag - int(y[position_y]) position_x -= 1 position_y -= 1 if ( tmp < 0 ): flag = 1 tmp = 10 + tmp else: flag = 0 retString = str(tmp) + retString retString = remove_zero(retString) if ( negative == 1 ): retString = '-' + retString else: print "Parameter is not legal!" return "error" return retString a = '' b = '' a = raw_input("Please enter first num:") b = raw_input("please enter scend num:") print operation_add(a, b) print operation_multi(a, b) print operation_sub(a, b)
|
一共有 2 条评论
哈哈哈
[url=http://www.dzbc688.com]上海搬场[/url]
[url=http://www.dzbc688.com]搬场公司[/url]
[url=http://www.dzbc688.com]上海搬场公司[/url]
[url=http://www.dzbc688.com]搬场[/url]
[url=http://www.dzbc688.com]大众搬场[/url]
[url=http://www.dzbc688.com]大众搬场公司[/url]
[url=http://www.dzbc688.com]上海大众搬场[/url]
[url=http://www.dzbc688.com]上海大众搬家[/url]
[url=http://www.dzbc688.com]上海大众搬场公司[/url]
[url=http://www.dzbc688.com]上海大众搬家公司[/url]
[url=http://www.021gxbc.com]公兴搬家[/url]
[url=http://www.021gxbc.com]公兴搬家公司[/url]
[url=http://www.021gxbc.com]公兴搬场[/url]
[url=http://www.021gxbc.com]上海公兴搬家[/url]
[url=http://www.021gxbc.com]上海公兴搬场[/url]
[url=http://www.021gxbc.com]上海公兴搬场公司[/url]
[url=http://www.021gxbc.com]上海公兴搬家公司[/url]
[url=http://www.seo021.net]上海书生软件[/url]
[url=http://www.021688.com]上海报纸广告[/url]
[url=http://www.021688.com]上海报纸[/url]
[url=http://www.huay56.cn]华宇物流[/url]
[url=http://www.huay56.cn]上海华宇物流[/url]
[url=http://www.huay56.cn]华宇物流公司[/url]
[url=http://www.huay56.cn]上海华宇物流公司[/url]
dakhgkd
[url=http://www.021gxbj.com]强生搬家[/url]
[url=http://www.021gxbj.com]强生搬场[/url]
[url=http://www.021gxbj.com]上海强生搬家[/url]
[url=http://www.021gxbj.com]上海强生搬场[/url]
[url=http://www.021gxbj.com]上海强生搬家公司[/url]
[url=http://www.021gxbj.com]上海强生搬场公司[/url]
[url=http://www.gxbj168.com]公兴搬家[/url]
[url=http://www.gxbj168.com]公兴搬家公司[/url]
[url=http://www.gxbj168.com]公兴搬场[/url]
[url=http://www.gxbj168.com]上海公兴搬家[/url]
[url=http://www.gxbj168.com]上海公兴搬场[/url]
[url=http://www.gxbj168.com]上海公兴搬场公司[/url]
[url=http://www.gxbj168.com]上海公兴搬家公司[/url]
[url=http://www.dzbc688.net.cn]大众搬场[/url]
[url=http://www.dzbc688.net.cn]大众搬场公司[/url]
[url=http://www.dzbc688.net.cn]上海大众搬场[/url]
[url=http://www.dzbc688.net.cn]上海大众搬家[/url]
[url=http://www.dzbc688.net.cn]上海大众搬场公司[/url]
[url=http://www.dzbc688.net.cn]上海大众搬家公司[/url]
fjkajfgjahgajh
[url=http://www.shmlrs.cn]上海婚纱摄影[/url]
[url=http://www.shmlrs.cn]上海婚纱摄影中心[/url]
[url=http://www.shmlrs.cn]婚纱摄影中心[/url]
[url=http://www.shmlrs.cn]婚纱摄影[/url]
[url=http://www.shgxbcgs.com.cn]公兴搬家[/url]
[url=http://www.shgxbcgs.com.cn]公兴搬场[/url]
[url=http://www.shgxbcgs.com.cn]上海公兴搬家[/url]
[url=http://www.shgxbcgs.com.cn]上海公兴搬场[/url]
[url=http://www.shgxbcgs.com.cn]上海公兴搬场公司[/url]
[url=http://www.shgxbcgs.com.cn]上海公兴搬家公司[/url]
[url=http://www.shgxbcgs.com.cn]上海公兴搬场公司[/url]
[url=http://www.shgxbcgs.com.cn]上海公兴搬家公司[/url]
[url=http://www.shgxdz.com.cn]吊装[/url]
[url=http://www.shgxdz.com.cn]上海吊装[/url]
[url=http://www.shgxdz.com.cn]吊装公司[/url]
[url=http://www.shgxdz.com.cn]上海吊装公司[/url]
[url=http://www.shztky56.com.cn]华宇物流[/url]
[url=http://www.shztky56.com.cn]华宇物流公司[/url]
[url=http://www.shztky56.com.cn]上海华宇物流[/url]
[url=http://www.shztky56.com.cn]上海华宇物流公司[/url]
[url=http://www.shgxbc88.cn]公兴搬场[/url]
[url=http://www.shgxbc88.cn]公兴搬家[/url]
[url=http://www.shgxbc88.cn]上海公兴搬场[/url]
[url=http://www.shgxbc88.cn]上海公兴搬家[/url]
[url=http://www.dzbcwl.net.cn]大众搬场[/url]
[url=http://www.dzbcwl.net.cn]大众搬场公司[/url]
[url=http://www.dzbcwl.net.cn]上海大众搬场[/url]
[url=http://www.dzbcwl.net.cn]上海大众搬家[/url]
[url=http://www.dzbcwl.net.cn]上海大众搬场公司[/url]
[url=http://www.dzbcwl.net.cn]上海大众搬家公司[/url]