高精度除法(大数除int型)模板

来源:互联网 发布:贸易数据库 编辑:程序博客网 时间:2024/05/22 03:19
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int division(int a[], int len, int x, int c[]){   int k = 0, t = 0, s = 0;   bool flag = true;   for(int i = len-1; i >= 0; i--) //从高位开始除   {       t = s*10 + a[i];       if(t/x>0 || t==0)        c[k++] = t/x, s = t%x, flag = false; //够除就改变商,flag标记第一个值不为0,此后的0就要算到商里面       else    //不够除就加0       {           s = t;           if(!flag)            c[k++] = 0;       }   }   return k-1;}int main(){    char a[1000];    int x, b[1000], c[1000];    memset(b, 0, sizeof(b));    memset(c, 0, sizeof(c));    scanf("%s%d", a, &x);    int len1 = strlen(a);    for(int i = 0; i < len1; i++) b[i] = a[len1-i-1] - '0';    int k = division(b, len1, x, c);    for(int i = 0; i <= k; i++) printf("%d",c[i]); printf("\n");}

1 0