题目来源:牛客网编程入门训练--BC111 小乐乐与进制转换
输入描述:
输入一个正整数n (1 ≤ n ≤ 109)
输出描述:
输出一行,为正整数n表示为六进制的结果
解题思路:由十进制数字打印类比可得,需要得到一个十进制整数的每一位,只需要将数字取模10,得到最低位,再除以10,去掉得到的这一位,再取模10,拿下第二位........
所以这题需要得到正整数六进制的表示结果,只需要将该正整数取模6,拿下最低位,除以6,去掉该位,再取模拿下第二位(放在一个数组里面).....最后从拿下的最后一位从后向前打印,即可得出六进制的结果。
下面上代码,其余需要注意的点在代码中以注释形式展示:
#include <stdio.h>
int main()
{
int num = 0;
int arr[50] = { 0 }; // 取下的六进制位存放在这里
int i = 0;
scanf("%d", &num);
while (num)
{
arr[i] = num % 6;
i++;
num=num / 6;
}
for (i--; i >= 0; i--) // 初始化i--,是六进制最高位此时存放位置
{
printf("%d", arr[i]);
}
return 0;
}
over ~