Chinaunix首页 | 论坛 | 博客
  • 博客访问: 791729
  • 博文数量: 155
  • 博客积分: 4056
  • 博客等级: 上校
  • 技术积分: 1531
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-04 14:46
文章分类

全部博文(155)

文章存档

2011年(4)

2010年(4)

2009年(44)

2008年(36)

2007年(34)

2006年(28)

2005年(5)

我的朋友

分类: C/C++

2008-04-28 14:28:52

早上在CU的论坛里看到R.Stallman抵制中国货和北京奥运的消息,后来mingyanguo出来说是从delphij的blog上看来的,于是又跳了过去,居然看到一个算法题,居然还不小心做了下:) 这里是我的代码
 
 
 

#include <stdio.h>

static const char x36[36] = {
    '0','1','2','3','4','5','6','7','8','9',
    'a','b','c','d','e','f','g','h','i','j',
    'k','l','m','n','o','p','q','r','s','t',
    'u','v','w','x','y','z',
};

int main( int argc, char* argv[] )
{
    if (argc != 2) {
        printf ("Usage: %s number[0,46656)\n", argv[0]);
        return -1;
    }
    char n[4];
    int i = atoi (argv[1]);
    if (i >= 46656 || i < 0) {
        printf ("Number overflow!\n");
        return -2;
    } else if (i < 3600) {
        n[0] = x36[i / 100];
        i %= 100;
        n[1] = x36[i / 10];
        n[2] = x36[i % 10];
    } else if (i < 12960) {
        i -= 3600;
        n[0] = x36[i / 260];
        i %= 260;
        n[1] = x36[10 + i / 10];
        n[2] = x36[i % 10];
    } else {
        i -= 12960;
        n[0] = x36[i / 936];
        i %= 936;
        n[1] = x36[i / 26];
        n[2] = x36[10 + i % 26];
    }
    n[3] = '\0';
    printf ("%s = %s[x36]\n", argv[1], n);
    return 0;
}

 

mingyanguo的帖子:

delphij的blog:http://blog.delphij.net/archives/2008/04/-36.html

 
【补充】
刚看到delphij在blog上贴了他的代码,思路完全一致:)
阅读(1946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~