(若想查看高精除以高精,请点击链接)链接
高精除以单精还是比较简单(还不用倒序存储呢),直接模拟竖式就好了。
Code
#include<bits/stdc++.h>
using namespace std;
int a[300],b,c[300],Left;
string s;
int main()
{
cin>>s; cin>>b;
int lena=s.size();
for(int i=1;i<=lena;i++) a[i]=s[i-1]-'0';
for(int i=1;i<=lena;i++)
{
a[i]+=(a[i-1]<<3)+(a[i-1]<<1);
c[i]=a[i]/b;
a[i]-=a[i]/b*b;
}
Left=a[lena];//余数
int lenc=1;
while(c[lenc]==0&&lenc<=lena-1) lenc++;//删除多余的前导0
for(int i=lenc;i<=lena;i++) printf("%d",c[i]);
printf("\n%d",Left);
return 0;
}
学习厌倦了?点我有更多精彩哦!