问题描述
输入描述:
输入一个正整数n (1 ≤ n ≤ 109)
输出描述:
输出一行,为正整数n表示为六进制的结果
示例1
输入:6
输出:10
示例2
输入:120
输出:320
问题分析
这是一个进制转换问题。
解决方案
满六进一,通过一个递归进行除法运算,并且深运算所得数陆续放在前面。
所得的六进制数,每一位都是递归计算的相应一层模6所得。
如下图:有两层递归运算,第一层递归将39模6后得到了3,往下一层传6,第二层递归将函数所得数模6得0,往下传6,第三层6除以6得1.
代码
#include <stdio.h>
#include<math.h>
void fond(int x)
{
if(x>5)
{
fond(x/6);
}
printf("%d",x%6);
}
int main()
{
int input=0;
int i=0;
scanf("%d",&input);
fond(input);
return 0;
}