进制转换类的题目在绝大多数学校都是必考题目之一,这类题目的既基础又灵活,能看出学生的编程功底,所以这类题目一定要掌握。
总的来说,跟进制相关的题目可以分为以下几种题型
1、反序数:输入一个整数如123,将其转换为反序之后的整数321
2、10进制转2进制:将一个10进制整数转化为一个2进制的整数
例如:7转换为111
3、10进制转16进制:将一个10进制整数转化为一个16进制的整数
例如:10转换为A
4、10进制转x进制:将一个10进制整数转化为一个x进制的整数
解析:这是前面两个的一种通解,如果会前面两种那么这个自然也触类旁通。
5、x进制转10进制:将一个x进制整数转化为一个10进制的整数
解析:这是上一种情况的反例,看代码之后相信也能容易理解。
6、x进制转y进制:将一个x进制整数转化为一个y进制的整数
解析:遇到这种情况,可以拆解为x先转为10进制,然后再将10进制转为y进制。
7、字符串转浮点数
例如:有一串字符串31.25 将其转换为一个浮点数,可以先转整数部分,再转小数部分,最后相加即可。
8、浮点数转字符串
例如:有一个浮点数23.45将其转换为一个字符串进行存储,可以将整数和小数拆开再合并成一个字符串。
9、字符串转整型和整形转字符串
解析:直接用atoi函数和itoa函数即可。
反序数代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int ans = 0;//将反序之后的答案存在这里
while (n > 0) {//将n逐位分解
ans *= 10;
ans += (n % 10);
n /= 10;
}
printf("%d\n", ans);
return 0;
}
10进制转x进制代码(x小于10的情况)
#include <stdio.h>
int main() {
int n, x;
int s[105];
//输入10进制n 和 要转换的进制x
scanf("%d%d", &n, &x);
int cnt = 0;//数组下标
while (n > 0) {//将n逐位分解
int w = (n % x);
s[cnt++] = w;
n /= x;
}
//反序输出
for (int i = cnt - 1; i >= 0; i--) {
printf("%d", s[i]);
}
printf("\n");
return 0;
}
转x进制代码(通用版)
10进制转x进制代码(通用版)
#include <stdio.h>
int main() {
int ...
题目练习
DreamJudge 1454 反序数
DreamJudge 1259 进制转换2
DreamJudge 1176 十进制和二进制
DreamJudge 1380 二进制数
DreamJudge 1417 八进制
DreamJudge 1422 进制转换3
DreamJudge 1097 负二进制
登录后开始许愿
暂无评论,来抢沙发