问题
在Excel 2003中,用A表示第1列,B表示第2列……Z表示第26列,AA表示第27列,AB表示第28列……以此类推。请写一个函数,输入用字母表示的列号编码,输出它是第几列。.
思路
这是一道关于进制的题目,其本质是把十进制数字用A~Z表示成二十六进制
code
#include<stdio.h>
#include<math.h>
#define N 10
int main()
{
int sum;
char arr[N];
int i;
while(scanf("%s",arr)!=EOF)
{
sum=0;
i=0;
for(int j=0;j<10;j++)
{
if(arr[j]=='\0')
{
break;
}
i++;
}
i--;//i为字符串中最后一个有效字符
int weight=0;
for(;i>=0;i--){
sum=sum+(arr[i]-'A'+1)*pow(26,weight);
weight++;
}
printf("%d\n",sum);
}
return 0;
}