题目
Excel单元格的地址表示很有趣,它使用字母来表示列号。
比如,
A表示第1列,
B表示第2列,
Z表示第26列,
AA表示第27列,
AB表示第28列,
BA表示第53列
输入:
27
输出:
AA
思路
利用循环解决,关键是像求进制一样解决问题,类比就知道AA就像11,AB就像12,不断加变成BA就像21,BB就像22,n /= 26就是求每一位的字母。
代码
#include<iostream>
using namespace std;
int main()
{
int n,i = 0;
cin>>n;
char v[1000000];
while(n > 0)
{
n--;
v[i++] = (n%26+'A'); //求该位的字母
n /= 26; //求下一位的字母
}
for(i = i -1;i >= 0;i--) cout<<v[i];//首先输出高位的字母
return 0;
}
- 总结
关键是像求进制一样求解