题意:给你俩26进制数(a对应0,b对应1…),求乘积
比赛的时候我的第一想法是把两个数都变成10进制,然后直接乘,乘出来再转换为10进制…然后就发现爆了unsigned long long….一脸懵逼。后来机智地发现GCC的__int128可以水过去…然后就没有然后了…
不过,要是数据再大一点估计就GG了,所以还是要了解一下正解…其实也不难,就是模拟一下高精度算法就行了….
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
int ans[60]={
0},i,j,k;
string str1,str2;
cin>>str1>>str2;
for(i=0;i<str1.size();i++)
26进制乘法模拟高精度算法

博客介绍了在处理26进制数乘法时遇到的问题,首先尝试将26进制数转化为10进制进行乘法运算,但遇到数据溢出问题。然后利用GCC的__int128类型解决此问题,但指出对于更大数据,应采用高精度模拟算法来正确计算26进制数的乘积。
最低0.47元/天 解锁文章
1372

被折叠的 条评论
为什么被折叠?



