#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");
}
高精度除法(大数除int型)模板
最新推荐文章于 2024-07-19 17:17:03 发布