13-进制转换

问题描述:

输入一个十进制数 N,将它转换成R 进制数输出。在 10≤R≤16的情况下,用'A'表示 10,用'B'表示11,用'C'表示12,用'D'表示13,用'E'表示14,用'F'表示15

输入格式

输入包含两个整数 N(N≤10000)R(2≤R≤16)

注意,N有可能是负整数。

输出格式

输出一行,表示转换后的数。

样例输入
23 12
样例输出
1B

代码详解:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int count=0;//count the index
	int N;//the number
	int R;//the R
	int remainder;
	char item[100001];//the array
	cin>>N>>R;
	int Number=abs(N);
	//
	while(Number){
		remainder=Number%R;
		if(remainder>=10){
		   switch(remainder){
		    case 10:item[count++]='A';break;
		    case 11:item[count++]='B';break;
		    case 12:item[count++]='C';break;
		    case 13:item[count++]='D';break;
		    case 14:item[count++]='E';break;
		    case 15:item[count++]='F';break;
		   }
		}
		else
			item[count++]=remainder+'0';
			Number=Number/R;
		}
	if(N<0)cout<<"-";
	if(count==0)cout<<0;
	else{
		for(int i=count-1;i>=0;i--){
			cout<<item[i];
		}
	}			
	return 0;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值