0
点赞
收藏
分享

微信扫一扫

小乐乐与进制转换

伊人幽梦 2022-01-26 阅读 59
c语言
描述

小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。
输入描述:

输入一个正整数n  (1 ≤ n ≤ 10^9)
输出描述:
输出一行,为正整数n表示为六进制的结果
示例1
输入:

6

输出:

10

示例2
输入:

120

输出:

320

思路:这里我的想法主要是想通过数组实现,首先我通过本题所给数据范围推算最大数据,我得到的最大数据是6^12,刚好数组的下标对应次方,我们在数组每一个格子都除以对应的6^下标,得到对应6进制的数字,再使这个数字取模,继续重复上述操作,最后输出即可!!!!!!!!!

下面请看代码

#include<stdio.h>
#include<math.h>
int main()
{
	int n,m=12,num[15],i;
	scanf("%d",&n);
	for(i=0;i<=12;i++)
	{
		num[i]=n/pow(6,m);
		n=n%(int)pow(6,m);
		m--;
	}
	int f=0;
	for(i=0;i<=12;i++) 
	{
		if(num[i]!=0)//使用变量巧妙避开输出前导0
		{
			++f;
		}
		if(f==0)
		continue;
		printf("%d",num[i]);
	}
	return 0;
}

下面是题解:

对于这种进制转换的题目,我们常常使用短除法!!!!!!!!!!!!!!!!!!!!!!

举报

相关推荐

0 条评论