codeforces 1B Spreadsheets 解题报告

codeforces 1B  Spreadsheets 解题报告codeforces 1B  Spreadsheets 解题报告
题目大意:
  用26个大写字母A~Z代表1~26,例如A是1,B是2,Z是26,AA是27;  
  由于没有代表0的字母,因此就有例如AAAA!=0.5*BAAA;因为AAAA=26^3+26^2+26+1,而BAAA=2*26^3+26^2+26+1;
  因此先求出n的位数m,然后构造出AA..A(m个A),然后在每个位置上取最大值。
代码:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;
int n;
char s[20];
char ans[20];
int sum[20],f[20];

void convert(int col);
int main()
{
    cin>>n;
    sum[0]=f[0]=1;
    for(int i=1;i<20;i++)
    {
        f[i]=26*f[i-1];
        sum[i]=sum[i-1]+f[i];
        if(sum[i]>1000000) break;
    }
    while(n--)
    {
        memset(s,'