作业介绍

高精度

高精度是一种处理超出标准数据类型范围(如 int 或 long long)的大整数的算法技术,通过模拟手工计算的方式逐位处理数字。在信息学竞赛中,当问题涉及非常大的整数(如超过 10^18)且无法用标准数据类型存储时,就需要使用高精度算法。

高精度模板

#include <bits/stdc++.h>
using namespace std;

//数据声明
string a,b;
int arr[1000],brr[1000],crr[1001];

int main() {
	cin >> a >> b;
	//获取字符长度
	int lena = a.size();
	int lenb = b.size();
	
	//	cout<< lena << endl << lenb<<endl;
	//转换成数字并存储
	for(int i=0;i<lena;i++){
		arr[i] = a[lena-1-i]-'0';
	}
	for(int i=0;i<lenb;i++){
		brr[i] = b[lenb-1-i]-'0';
	}
	
	//模拟加法
	int jinwei=0;
	int lenmax = max(lena,lenb);
	for(int i=0;i<lenmax;i++){
		int sum = arr[i]+brr[i]+jinwei;
		crr[i] = sum % 10;
		jinwei =sum/10;
	}
	
	//处理最后一位进位
	if(jinwei>0){
		crr[lenmax] =jinwei; 
		lenmax++;
	}
	
	//输出结果
	for(int i=lenmax-1;i>=0;i--){
		cout << crr[i];
	}
	
	return 0;
}

题目

认领作业后才可以查看作业内容。
状态
正在进行…
题目
5
开始时间
2025-2-12 0:00
截止时间
2222-2-8 23:59
可延期
24 小时