1000字数太大了,就直接读入字符数组,在进行计算,考虑到个位数的被除数,所以每次取两位进行比较,然后读入数组,在进行输出
#include <iostream>
#include <cstring>
int main(void)
{
char divisor[10001];
int quotient[10001];
unsigned int dividend;
int remainder = 0;
scanf("%s %d",divisor,÷nd);
unsigned int index = 0,i = 0,medium = 0;
while (index < strlen(divisor))
{
medium = divisor[index] - '0' + 10 * remainder;
if ((medium < dividend) && remainder) medium = medium * 10 + divisor[++index] - '0';
quotient[i++] = medium / dividend;
remainder = medium % dividend;
index++;
}
index = 0;
while (index < i)
{
if ((quotient[0] == 0) && index == 0)
{
index++;
if (index == i) printf("0");
continue;
}
printf("%d",quotient[index++]);
}
printf(" %d",remainder);
return 0;
}
这个方法有一个错误就是会在数组头部多存在一个0,用个方法去掉在进行输出