AcWing 794. 高精度除法 (数组计算)
原题链接
简单
作者:
GRID
,
2021-03-17 08:07:31
,
所有人可见
,
阅读 375
分析
- 读入数字s并存入a[]中
- 对数字a[]和b进行除法运算
- 输出答案
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N],b,l1,r;
char s[N];
void print(int a[]) //答案输出函数
{
int k=l1;
while(k && !a[k]) k--;
for(int i=k;i>=0;i--) cout<<a[i];
puts("");
}
void div(int a[],int b) //进行除法运算
{
int t=0,temp[l1];
memset(temp,0,sizeof temp);
for(int i=l1-1;i>=0;i--)
{
t=10*t+a[i];
temp[i]=t/b;
r=t%b;
}
memcpy(a,temp,sizeof temp);
}
int main()
{
scanf("%s",s);
l1=strlen(s);
scanf("%d",&b);
for(int i=0;i<l1;i++) a[l1-i-1]=s[i]-'0'; //存入数组a[]中
div(a,b);
print(a);
cout<<r<<endl;
return 0;
}
来组高精度除高精度吧。