Algorithm Gossip: 超长整数计算(大数计算)

来源:互联网 发布:凤阳安广网络 编辑:程序博客网 时间:2024/05/16 06:53
/**************************************** *  File Name  : arithmetic.c *  Creat Data : 2015.2.2*  Author     : ZY *****************************************/ /*Algorithm Gossip: 超长整数计算(大数计算)  N为阵列长度*//*加法(从低位开始计算)*/void add(int *a,int *b,int *c){int i,carry = 0;for(i = N-1;i >= 0;i--){c[i] = a[i]+b[i]+carry;if(c[i] < 10000){carry = 0;}else{//进位c[i] = c[i] - 10000;carry = 1;}}}/*减法(从低位开始计算)*/void sub(int *a,int *b,int *c){int i,borrow = 0;for(i = N-1;i >= 0;i--){c[i] = a[i]-b[i]-borrow;if(c[i] > 10000){borrow = 0;}else{//借位c[i] = c[i] + 10000;borrow = 1;}}}/*乘法(从低位开始计算)*/void mul(int *a.int b,int *c)//b为乘数{int i,tmp,carry = 0;for(i =N-1;i >= 0;i--){tmp = a[i]*b+carry;c[i] = tmp%10000;carry = tmp/10000;}}/*除法(从高位开始计算)*/void div(int *a,int b,int *c)//b为除数{int i,tmp,remain = 0;for(i = 0;i < N;i++){tmp = a[i]+remain;c[i] = tmp/b;remain = (tmp%b)*10000;}}

0 0
原创粉丝点击