1017 A除以B (20 分)
题目链接
算法分析
本质上是一个高精度除以低精度的算法(高精度模板总结)
代码实现
#include<bits/stdc++.h>
using namespace std;
#define N 10000000
int t1[N], c[N];
char a[N];// 两个数
int b;
int main(){
cin>> a>> b;//输入两个数
int lena = strlen(a);
for(int i = 0; i < lena; ++ i) t1[lena - i] = a[i] - '0';//存下被除数
int len = lena;
int x = 0;
for(int i = len; i >= 1; -- i){//从高位到低位的处理
c[i] += (x * 10 + t1[i]) / b;
x = (x * 10 + t1[i]) % b;
}
while(!c[len] && len > 1) len --;//最高位的判断
for(int i = len; i >= 1; -- i)
printf("%d", c[i]);//商
printf(" %d", x);//余数
return 0;
}