《信息学奥赛一本通》 高精除以低精。输入两个正整数,求它们的商(做整除)。
原创
©著作权归作者所有:来自51CTO博客作者wx5e46005fc4d21的原创作品,请联系作者获取转载授权,否则将追究法律责任
代码
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main ()
{
char a1[100];
int a[100],c[100],lena,i,x=0,lenc,b;
memset(a,0,sizeof(a));
memset(c,0,sizeof(c));
gets(a1);
cin>>b;
lena=strlen(a1);
for(i=0;i<=lena-1;i++)
{
a[i+1]=a1[i]-48;
}
for(i=1;i<lena;i++)
{//按位相除
c[i]=(x*10+a[i])/b;
x=(x*10+a[i])%b;
}
lenc=1;
while(c[lenc]==0&&lenc<lena)
{//删除前导0
lenc++;
}
for(i=lenc;i<=lena;i++)
{
cout<<c[i];
}
cout<<endl;
return 0;
}