高精度运算板子

高精度加减

//#pragma comment(linker,   "/STACK:10240000000000,10240000000000")
//#pragma GCC optimize(2)

#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for (int i=(a);i<=(b);++i)
#define per(i,b,a) for (int i=(b);i>=(a);--i)
#define lb lower_bound
#define ub upper_bound
#define pb push_back
#define itt iterator
#define endl '\n'
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define lowbit(x) x & (-x)
#define clr(x) memset(x, 0, sizeof(x));
#define fi first
#define se second
#define mp make_pair
#define MOD 1000000007
typedef vector<int> vii;
typedef vector<long long> vll;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef set<int> si;
typedef set<ll> sll;
const pii movee[] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
ll ksm(ll a, ll b, ll p) {if (b == 0) return 1; ll ns = ksm(a, b >> 1, p); ns = ns * ns % p; if (b & 1) ns = ns * a % p; return ns;}		
const int MAXN = 0x7fffffff;

// //高精度加法
// vector <int> add(vector <int> &A, vector <int> &B)
// {
// 	int t = 0;
// 	vector <int> C;
// 	for(int i = 0; i < A.size() || i < B.size(); i ++)
// 	{
// 		if(i < A.size()) t += A[i];
// 		if(i < B.size()) t += B[i];
// 		C.push_back(t % 10);
// 		t /= 10;
// 	}
// 	if(t) C.push_back(1);
// 	reverse(C.begin(), C.end());
// 	return C;
// }


// //高精度减法
// bool cmp(vector <int> &A, vector <int> &B)
// {
// 	if(A.size() != B.size()) return A.size() > B.size();
// 	for(int i = A.size() - 1; i >= 0; i --)
// 		if(A[i] != B[i]) return A[i] > B[i];
// 	return true;
// }

// vector <int> sub(vector<int> &A, vector <int> &B)
// {
// 	vector <int> C;
// 	for(int i = 0, t = 0; i < A.size(); i ++)
// 	{
// 		t = A[i] - t;
// 		if(i < B.size()) t-= B[i];
// 		C.push_back((t + 10) % 10);
// 		if(t < 0) t = 1;
// 		else t = 0;
// 	}
// 	while(C.size() > 1 && C.back() == 0) C.pop_back();
// 	reverse(C.begin(), C.end());
// 	return C;
// }


int main ()
{	
	//IOS;
	string a, b;
	vector <int> A, B;
	cin >> a >> b;
	for(int i = a.size() - 1; i >= 0; i --) A.push_back(a[i] - '0');
	for(int i = b.size() - 1; i >= 0; i --) B.push_back(b[i] - '0');

	// // 加法
	// auto C = add(A, B);
	// for(auto x : C) cout << x;
	// cout << endl;



	// // 减法
	// if(cmp(A, B))
	// {
	// 	auto C = sub(A, B);
	// 	for(auto x : C) cout << x;
	// }
	// else 
	// {
	// 	auto C = sub(B, A);
	// 	cout << "-";
	// 	for(auto x : C) cout << x;
	// }
	// cout << endl;




	return 0;
}	
/*

*/

高精度 低精度 乘法除法

//#pragma comment(linker,   "/STACK:10240000000000,10240000000000")
//#pragma GCC optimize(2)

#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for (int i=(a);i<=(b);++i)
#define per(i,b,a) for (int i=(b);i>=(a);--i)
#define lb lower_bound
#define ub upper_bound
#define pb push_back
#define itt iterator
#define endl '\n'
#define IOS ios::sync_with_stdio(0); cin.tie(0);
#define lowbit(x) x & (-x)
#define clr(x) memset(x, 0, sizeof(x));
#define fi first
#define se second
#define mp make_pair
#define MOD 1000000007
typedef vector<int> vii;
typedef vector<long long> vll;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef set<int> si;
typedef set<ll> sll;
const pii movee[] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
ll ksm(ll a, ll b, ll p) {if (b == 0) return 1; ll ns = ksm(a, b >> 1, p); ns = ns * ns % p; if (b & 1) ns = ns * a % p; return ns;}		
const int MAXN = 0x7fffffff;

// // 高精度 低精度 乘法
// vector <int> mul(vector <int> &A, int b)
// {
// 	vector <int> C;
// 	int t = 0;
// 	for(int i = 0; i < A.size() || t; i ++)
// 	{
// 		if(i < A.size()) t += A[i] * b;
// 		C.push_back(t % 10);
// 		t /= 10;
// 	}
// 	while(C.size() > 1 && !C.back()) C.pop_back();
// 	reverse(C.begin(), C.end());
// 	return C;
// }


// // 高精度 低精度 除法
// vector <int> div(vector <int> &A, int b, int &r)
// {
// 	vector <int> C;
// 	r = 0;
// 	for(int i = A.size() - 1; i >= 0; i --)
// 	{
// 		r = r * 10 + A[i];
// 		C.push_back(r / b);
// 		r %= b;
// 	}
// 	reverse(C.begin(), C.end());
// 	while(C.size() > 1 && C.back() == 0) C.pop_back();
// 	reverse(C.begin(), C.end());
// 	return C;
// }

int main ()
{	
	//IOS;
	string a;
	int b;
	cin >> a >> b;
	vector <int> A;
	for(int i = a.size() - 1; i >= 0; i --) A.push_back(a[i] - '0');

	// //高精度 低精度 乘法
	// auto C = mul(A, b);
	// for(auto x : C) cout << x;
	// cout << endl;

	// //高精度 低精度 除法
	// int r;
	// auto C = div(A, b, r);
	// for(auto x : C) cout << x;
	// cout << endl << r << endl;

	return 0;
}	
/*

*/
上一篇:Python实战|js逆向空中网


下一篇:环路运输