算法——高精度除法2(高精度除单精度)

高精度除法2(高精度除单精度)


输入一个高精度数a,输入一个单精度数b,输入小数位数n,求它的商
代码

#include 
using namespace std;

int a[250],c[250];
int main(){
	string s;
	int b,i,x,p,n;
	cin>>s>>b>>n;  //s/b 精确到n位 
	for(i=0;i<s.size();i++){
		a[i]=s[i]-'0';		
	}
	//整数部分 
	x=0;  //x为余数
	for(i=0;i<s.size();i++){
		c[i]=(x*10+a[i])/b;
		x=(x*10+a[i])%b;
	}
	p=0;  //为第一次出现非0数的位置
	for(i=0;i<s.size();i++){
		if(c[i] != 0){
			p=i;
			break;
		}
	} 
	for(i=p;i<s.size();i++){
		cout<<c[i];
	}
	cout<<".";
	//小数部分
	for(i=1;i<=n;i++){
		cout<<x*10/b;
		x=x*10%b;
	} 
	 
	return 0;
}


你可能感兴趣的:(算法——高精度除法2(高精度除单精度))