题目给出的26进制数要我们相加,先转化为10进制相加后在转化为26进制,其实和直接用26进制直接相加一样,所以我们直接相加即可
注意如果全是A则输出A,例如AAAAAAA AAAAAA 输出结果即A
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int i,j,k,mark;
int maxlen;
string str1,str2;
char ch;
int a[2100],b[2100],s[20100];
while(cin>>str1>>str2)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(s,0,sizeof(s));
int l1=str1.size();
int l2=str2.size();
maxlen=l1>l2?l1:l2;
k=0;mark=0;
for(i=l1-1;i>=0;i--)
{
a[k]=str1[i]-65;
k++;
}
k=0;
for(i=l2-1;i>=0;i--)
{
b[k]=str2[i]-65;
k++;
}
for(i=0;i<maxlen;i++)
{
s[i]+=(a[i]+b[i]);
//进位思想
if(s[i]>25)
{
s[i+1]++;
s[i]%=26;
}
}
i=2000;
while(i--)
{
if(s[i]!=0)
break;
}
for(;i>=0;i--)
{
for(j=0;j<=25;j++)
{
if(s[i]==j)
{
mark=1;
ch=j+65;
cout<<ch;
}
}
}
if(mark==0)
{
//for(i=0;i<maxlen;i++)
cout<<"A";
}
cout<<endl;
}
return 0;
}
本文详细介绍了如何使用C++编程语言,通过高效的算法来完成26进制数的相加及转换过程。通过引入自定义的数据结构和算法,作者成功地优化了这一常见数学操作的执行效率。文章不仅提供了完整的源代码实现,还阐述了在实际应用中可能遇到的问题以及解决方案,为读者提供了一套实用的编程技巧。
910

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



