栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【第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博主英雄哪里出来的博文后,自己记录的一些观点和想法,希望对大家有帮助。英雄哪里出来的对应博文地址:传送门

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号