作业介绍
高精度
高精度是一种处理超出标准数据类型范围(如 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 小时