Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4733969
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2009-07-13 16:13:42

        序列 seq=[a,b,…,z,aa,ab,…,az,ba,bb,…,bz,…,za,zb,…,zz,aaa,…]类似于excel的字母序排列,任意给一字符串 s=[a-z]+(a-z字符串组成的任意长度字符串),请问s是序列seq的第几个字符串。
    总觉得这题有点不想baidu的风格,也许是其中的旋律我还没有参透吧,各位要是有参透的一定得透露透露^_^
    也许是考溢出?
 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int getnum(char c)
{
  return c-'a'+1;
}
 
int main()
{
  unsigned long long int p;
  char s[26];
  
  while(strcmp(fgets(s,26,stdin),"\n"))
  {
   printf("s is %s",s);
   p = 0;
   char* ch = s;
   while(*ch!='\n')
   {
     p = p*26 + getnum(*ch);
     ch++;
    }
   printf("%s is %lu\n",s,p);
  }
  system("PAUSE");
  return 0;
}

阅读(1108) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-07-16 12:08:18

对啊,是相当于26进制数,我总觉得不是这么简单的,不像baidu.一定有蹊跷,大数问题?

chinaunix网友2009-07-16 09:26:50

相当于26进制的数吧 比如sdac这样的,那就是3*26^0+1*26^1+4*26^2+19*26^3