1. 程式人生 > >A/B 高精度

A/B 高精度

scan sum || strlen light fine bit main har

P1480 洛谷

做了A+B Problem,A/B Problem不是什麽問題了吧!

#include<bits/stdc++.h>
#define LL long long
using namespace std;
int a[11000000],a2[110000000];
int n1,n2,b;
char x[110000000];
int main()
{
	scanf("%s",x);
	cin>>b;
	n1=strlen(x);
	int k=0;
	for(int i=0;i<n1;i++)
	{
		a[k++]=x[i]-48;//從char轉int 
	}
	if(b==0)
	{
		cout<<0;//如果一個除數是0,輸出0 
	}
	else
	{
		if(x=="0")
		{
			cout<<0;//如果一個除數是0,輸出0 
		}
		else
		{
			int j=0;
			int pd=0;
			int k2=0;
			for(int i=0;i<n1;i++)
			{
				int sum=a[i]+k2*10;//除操作 
				int x=sum/b;
				k2=sum%b;
				if(x||j)
				{
					pd=-1;
					a2[j++]=x;
				}
			}
			if(pd==0)
			{
				cout<<0;
				return 0;
			}
			for(int i=0;i<j;i++)
			{
				cout<<a2[i];//輸出 
			}
		}
	}
}

  這是一道高精除低精

A/B 高精度