高精减板子,调了一天了qwq,大佬忙看看qwq!~~
查看原帖
高精减板子,调了一天了qwq,大佬忙看看qwq!~~
524906
刘辰雨楼主2021/10/10 13:35
#include<bits/stdc++.h>
using namespace std;
int flag;
struct bignum
{
	int di[401]  , len ;
}add1,add2,sum;
void print(const bignum& a)
{
	for(int i = a.len ; i >= 1 ; i-- )
	{
		cout << a.di[i];
	}
	
}
bignum readin()
{
	bignum b;
	string a;
	cin>>a;
	b.len = a.length() ;
	for( int i = 1 ; i <= b.len ; i++ )
	{
		b.di[i] = a[b.len - i] - '0';
	}
	return b;
}
bignum fix(bignum& a)
{
//	while(a.di[a.len] == 0)a.len--;
	for( int i = a.len ; i >=1 ; i -- )
	{
		if( a.di[i] < 0 )
		{
			a.di[i] += 10 ;
			a.di[i+1] -= 1;
		}
	}
	return a;
}
bignum operator -(bignum a , bignum b )
{
	bignum sum;
	sum.len = max(a.len,b.len); 
	for(int i = 1 ; i <= sum.len ; i ++ )
	{
		sum.di[i] = a.di[i] - b.di[i];
	}
	fix(sum); 
	return sum; 
}
int main()
{
	add1=readin();
	add2=readin();
	sum = add1 - add2 ;
	print(sum);
	return 0;
}
2021/10/10 13:35
加载中...