小白编程题: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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具