问题描述:
小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。
输入描述:
输入一个正整数n (1 ≤ n ≤ 109) 。
输出描述:
输出一行,为正整数n表示为六进制的结果。
示例:
想法:
这里唯一的难点是如何让一个十进制数变成六进制,这里给大家说一种方法,比如这里输入120,120%6=0,那我们就在数组里的第一个元素放0,然后120/6,第二次就是20%6=2,我们再把2放到数组的第二个元素,再20/6=3,然后我们3%6=3,再将3放到数组的第三个元素,然后我们就开始打印,从数组的最后一个开始打印到第一个即可。
代码实现(c语言):
#include <stdio.h>
int main() {
long n, arr[10], i = 0, sum = 0;
while (scanf("%ld", &n) != EOF) {
while (n) {
arr[i] = n % 6;
n /= 6;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%ld", arr[j]);
}
}
return 0;
}