进制转换2031

解题思路:

(1)将十进制数n转换为r进制数的方法是,n除以r取余数作为转换后的数的最低位。若商不为0,则用商继续除以r,取余数做最低位,直到商为0为止。 其中,对于16进制大于9的六个数用A、B、C、D、E、F表示。

(2)如果使用递归,则求得的余数序列为从高到低,直接输出即可。如果不使用递归,则余数的存储序列为从低到高,输出时需注意反向输出。

(3)遇到负数时,先将其转化为正数,再进行进制转换,输出时不要忘记输出负号“-”。

题意

将十进制数n转化为r进制数

Sample Input

7 2

23 12

-4 3

Sample Output

111
1B

-11

#include<stdio.h> 

void fun(int a,int b)
{
	if(a==0)
	 return ;
	fun(a/b,b);
	char ch;
	if(a%b<10)
	 printf("%d",a%b);
	else
	 printf("%c",'A'+a%b-10);
}
int main()
{
	int n,r;
	while(~scanf("%d %d",&n,&r))
	{
		if(n<0)
		{
			printf("-");
			n=-1*n;
		}
		fun(n,r);
		printf("\n");
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值