【第20题】给定一个十进制数d和一个进制X,求它的X进制表示

【第20题】给定一个十进制数d和一个进制X,求它的X进制表示,第1张

【第20题】给定一个十进制数d和一个进制X,求它的X进制表

目录
  • 一、题目描述
  • 二、解题思路
  • 三、解题代码
  • 四、写在最后

一、题目描述

循环输入。给定一个十进制数 d d d和一个进制 X ( 2 ≤ X ≤ 16 ) , X(2≤X≤16), X(2≤X≤16),输出它的 X X X进制表示。当没有任何输入时,程序结束。

二、解题思路
  • 除留余数法。模对应的进制,不断取留余数,并且除上对应的值,直到商为0停止。将余数逆序排列得到的就是对应转换后的值。
三、解题代码
#include 
#include 
void Print(int num)
{
	if (10 <= num && num <= 16)
	{
		printf("%c",num - 10 +'A');
	}
	else
	{
		printf("%d",num);
	}
}

int main()
{
	int ans[100];
	int d,x;
	while(scanf("%d%d",&d,&x)!= EOF)
	{
		memset(ans,0,100);
		if (0 == d)
		{
			printf("0n");
			continue;
		}
		else if (d < 0)
		{
			printf("-");
			d = -d;
		}
		while(d)
		{
			ans[++ans[0]] = d % x;
			d /= x;
		}
		
		for(int i = ans[0]; i > 0; --i)
		{
			Print(ans[i]);
		}
		printf("n");
	}
	return 0;
}

这里的除留余数法要是还不理解的话,不要着急,举两个例子看一看,比如说举5和7的例子,自己动手在纸上演算一下除留余数法,然后对着代码理解一下,要是还不理解可以在文章下面评论留言或者私信作者。

四、写在最后

该文章内容是我阅读了CSDN博主英雄哪里出来的博文后,自己记录的一些观点和想法,希望对大家有帮助。英雄哪里出来的对应博文地址:传送门

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存