题目描述
思路
进制问题,用数组模拟,再逆序输出就行,具体在下面解释
代码
#include <iostream>
using namespace std;
int a[26];
void check()
{
for (int i = 0; i < 26; i++)
{
if (a[i] >= 26)
{
a[i + 1] += a[i] / 26;
a[i] = a[i] % 26;
}
}
}
int main()
{
a[0] = 2021;
check();
for (int i = 25; i >= 0; i--)
{
if (a[i])
cout << (char)(a[i] + 'A' - 1);
}
// for(int i=0;i<=26;i++){
// cout<<a[i]<<" ";
// }
// cout<<endl<<char(2+'A'-1)<<endl;
return 0;
}
解释
输出结果BYS,
a[]数组就是模拟进制的容器, 处理后a[]={19,25,2,0,0,0,0…}
对应SYB,之后都是0,不计入有效