高精度除法,求改
  • 板块灌水区
  • 楼主WZRYWZWY_2
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/24 20:00
  • 上次更新2024/11/24 21:15:41
查看原帖
高精度除法,求改
1178146
WZRYWZWY_2楼主2024/11/24 20:00
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
char a[110000],b[110000];
int c[110000],d[110000],e[110000],x=0;
int n,nn;
int fu()
{
	if(n<nn) return 1;
	if(n==nn) 
	{
		int i=n;
		while(i--)
		{
			if(c[i]<d[i]) return 1;
		}
		return 0;
	}
	if(n>nn) return 0;
}
int main()
{
	scanf("%s%s",&a,&b);
	n=strlen(a);
	nn=strlen(b);
	for(int i=n;i>0;i--)
	{
		c[i]=a[n-i]-'0';
	}
	for(int i=nn;i>0;i--)
	{
		d[i]=b[nn-i]-'0';
	}
	for(int i=0;i<max(n,nn);i++)
	{
		while(fu())
		{
			if(c[i]<d[i])
			{
				c[i+1]--;
				c[i]=c[i]+10;
			}
			x++;
			e[i]=c[i]-d[i];
		}
		if(fu()==0) break;
	}
	printf("%d",x++);
}
2024/11/24 20:00
加载中...