高精度除法(高精除以单精)模板

(若想查看高精除以高精,请点击链接)链接
高精除以单精还是比较简单(还不用倒序存储呢),直接模拟竖式就好了。

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;
}

学习厌倦了?点我有更多精彩哦!


版权声明:本文为PerfectPeter原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。