突发奇想高精度
  • 板块灌水区
  • 楼主wanghuwang
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/1/10 22:14
  • 上次更新2025/1/11 05:12:09
查看原帖
突发奇想高精度
1179108
wanghuwang楼主2025/1/10 22:14

要存一个很大很大很大的数,要用高精度,但是,本蒟蒻没学,今天在网上闲逛时突发奇想出一种高精度思路,在此分享一下。

例如输入一个long longlong\ long存不下的数:

123456789123456789123456789123456789123456789123456789

我们把它拆成两半:

1234567891234567891234567891234567891234和 56789123456789

分开用long longlong\ long存,就可以存了。

#include<bits/stdc++.h>

using namespace std;

int main(){
	long long a=0,b=0;
	string s;
	cin>>s;
	int len=s.size();
	for(int i=0;i<=len/2;i++){
		a=a*10+s[i]-'0';
	}
	for(int i=len/2+1;i<len;i++){//我也只会用秦九韶算
		b=b*10+s[i]-'0';
	}
	//输出数字;
	cout<<a<<b;
	//数字加上一个数;
	long long c;
	cin>>c;
	b+=c;
	//输出数字;
	cout<<a<<b;
	return 0;
}

这种“非主流”算法应该还能实现更多功能,但是,本蒟蒻不会写,各位大佬见谅

2025/1/10 22:14
加载中...