高精度除单精度
相对于加,减,乘,高精度除单精度更简单
废话不多说,直接开始
学习之前你需要掌握:for循环,while循环,数组,字符串
正片开始
老规矩,输入,求长度,导入,但是,这次的导入是正着导,以往是倒着导
string s;int n;
cin>>s>>n;
la=s.size();
for(i=0;i<la;i++) a[i+1]=s[i]-'0';
接下来就要开始“除”了
思想:用x表示余数,c数组的第i位=(x*10+a数组的第i位)/低精数
for(i=1;i<=la;i++) {
c[i]=(x*10+a[i])/n;
x=(x*10+a[i])%n;
}
最后一步
lc=1;
while(c[lc]==0 && lc<la)
lc++;
输出,完成!!!
for(i=lc;i<=la;i++)
cout<<c[i];
全篇代码
//(water problem)
#include<bits/stdc++.h>
using namespace std;
const int mx=1010;
int a[mx],c[mx];
int la,lc;
int i,x;
int main()
{
string s;int n;
cin>>s>>n;
la=s.size();
for(i=0;i<la;i++) a[i+1]=s[i]-'0';
for(i=1;i<=la;i++) {
c[i]=(x*10+a[i])/n;
x=(x*10+a[i])%n;
}
lc=1;
while(c[lc]==0 && lc<la)
lc++;
for(i=lc;i<=la;i++)
cout<<c[i];
return 0;
}
谢谢