高精/高精 板子自用
作者:
erika07
,
2022-05-03 17:29:36
,
所有人可见
,
阅读 177
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
const int N=1e6+10;
string a1,b1;
int a[N],b[N],c[N],t[N];
int compare(int aa[],int bb[])
{
if (aa[0]>bb[0]) return 1;
if (aa[0]<bb[0]) return -1;
for (int i=aa[0];i>0;i--)
{
if (aa[i]>bb[i]) return 1;
if (aa[i]<bb[i]) return -1;
}
return 0;
}
void numcpy(int aa[],int bb[],int l)
{
for (int i=1;i<=aa[0];i++) bb[i+l-1]=aa[i];
bb[0]=aa[0]+l-1;
}
int main()
{
cin>>a1>>b1;a[0]=a1.size();b[0]=b1.size();c[0]=a[0]-b[0]+1;
for (int i=1;i<=a[0];i++) a[i]=a1[a[0]-i]-48;
for (int i=1;i<=b[0];i++) b[i]=b1[b[0]-i]-48;
for (int i=c[0];i>0;i--)
{
memset(t,0,sizeof(t));
numcpy(b,t,i);
while (compare(a,t)>=0)
{
c[i]++;
if (!compare(a,t)) {a[0]=0;continue;}
for (int i=1;i<=a[0];i++)
{
if (a[i]<t[i]) a[i+1]--,a[i]+=10;
a[i]-=t[i];
}
while (a[0]>0&&!a[a[0]]) a[0]--;
}
}
while (c[0]>0&&!c[c[0]]) c[0]--;
if (!c[0]) cout<<0<<endl;
else for (int i=c[0];i>0;i--) cout<<c[i];
return 0;
}
Orz,大佬我来了之后您最近来访100啦
好耶!谢谢你!