进制转换(连续)

来源:互联网 发布:.sit域名 备案 编辑:程序博客网 时间:2024/05/16 12:45

        进制转换的问题我搞了很长时间,虽然不复杂,但是对于我这个新手来难度还是有的(主要是算法之外的东西,算法本身并没花多少时间,谁让我喜欢胡思乱想呢!)。最惨的是我还有那么一点强迫症,稍微有一点不明白的地方就抓着不放,于是乎整整3天才算完全明白(看来还是我智商不够),当然3天这么长还是因为这3天我都是几乎满课的,所以没太多时间做这个事。

        言归正传,这次实现的进制转换是连续的,也就是说如果中间有其他字符这是处理不了的,不连续的其实也不叫进制转换了,但是为了以防万一还可以加个条件让其自动退出,这个我没加。还有一点就是我用的是全局变量,如果不喜欢自己换成引用或指针。AC代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define  maxn  1024
int num = 0;
int count_num(int k)
{
char s[maxn];
scanf("%s", s);
int n = strlen(s);
for (unsigned int i = 0; i < n;)
{
while (s[i] >= '0' && s[i] <= '9')
num = num * k + s[i] - '0', i++;
}
return num;
}