高级光能
e 高精度……
代码奉上:
//高精度除法与求余
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int M=1e5+5;
char s[M],result[M];
int main()
{
long long mod,divis;
int n,i,k,flag,len;
while(cin>>s>>n) //输入被除数s以及除数n
{
len=strlen(s);
divis=flag=0;
for(i=k=0; i<len; i++)
{
divis=divis*10+s[i]-'0';
if(divis>=n&&!flag) //利用除法性质,当divs大于除数n时,开始进行整除
{
result[k++]=divis/n+'0';
divis=divis%n; //除法性质,余数*10加下一位的数字便是新的被除数
flag=1;
}
else if(flag)
{
result[k++]=divis/n+'0';
divis=divis%n;
}
}
if(!k) result[k++]='0';
result[k]='\0';
cout<<result<<endl;
mod=0;
for(i=0; i<len; i++)
{
mod=mod*10+s[i]-'0';
mod=mod%n; //利用除法性质,其实质是每次都是一个最多比n多一位的mod对n进行求余
}
cout<<mod<<endl;
}
return 0;
赵朗在2020-03-26 20:52:47追加了内容
自己琢磨琢磨吧!
黄子澄
赵朗在2020-03-26 20:54:57追加了内容
反正不是我写的
我太难了~