大数算法与组合数学算法-ACM..docxVIP

  • 12
  • 0
  • 约 18页
  • 2017-01-28 发布于重庆
  • 举报
大数算法与组合数学算法-ACM.

ACM国际大学生程序设计竞赛主讲王树林当有一个很大的整数要运算时, 如何算?例如: 一个一佰位数的数字.int 最大只能到232约十个位数的十进制数.先看大数加法.就是改成手动去算加法, 而不是由计算机算.123456789123+ 234123467890方法一: 使用数组(array)例如: int a[100], b[100], sum[100];然后sum[i]=a[i]+b[i]+c记住, c 是进位(carry), 这边我们要自行处理.输入成字符串再把字符串分解成数组中各个元素.需要一个parse字符串的子程序.void parse(char *s, int *a){int i,j;j=strlen(s);for(i=0;ij;i++){a[j-1-i]=s[0]-30;}}void add(int *a, int *b, int *sum){int i,c;c=0;for(i=0;i100;i++){sum[i]=a[i]+b[i]+c;if(sum[i]=10){sum[i]=sum[i]-10;c=1;} else {c=0;}}}array 改成byte的元素. (省空间)更省? 一个元素就可以到255, 256才进位.用bool用link list 方式(可以让输入的数字更大)其他?同样的原理.现将一些关键算法的实现方法描述如下大数的一些简单计算的算法

文档评论(0)

1亿VIP精品文档

相关文档