小白编程题:R进制转换为10进制

描述

输入一个R进制的数N,将它转换成10进制数。

输入

输入数据包含多个测试实例,对于每组测试用例:

输入两个整数 R(2 <= R <= 16, R ≠ 10)和 N (N的十进制 <= 10^9) 。

输出

输出转换后的数,每个输出占一行。

输入样例 1

8 123
8 -123
16 ABC

输出样例 1 

 83

-83

2748

 代码实现

#include <stdio.h>
#include <string.h>
int char_to_int(char c) {
    if (c >= '0' && c <= '9') {
        return c - '0';
    } else if (c >= 'A' && c <= 'F') {
        return c - 'A' + 10;
    }
    return 0; 
}
int main() {
    long long r;
    char n[10000];
    while (scanf("%lld %s", &r, n) != EOF) {
        long long len = strlen(n);
        long long sum = 0;
        int start = (n[0] == '-') ? 1 : 0;
        for (long long i = start; i < len; i++) {
            sum = sum * r + char_to_int(n[i]);
        }
        if (n[0] == '-') {
            printf("%lld\n", -sum);
        } else {
            printf("%lld\n", sum);
        }
    }
    return 0;
}

posted @   椰萝Yerosius  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示