2017.11.4
时间限制:1秒 空间限制:32768K 热度指数:10503
题目描述
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
输入描述:
输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。
输出描述:
为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)
示例1
输入
7 2
输出
111
 
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <iomanip>  //不能写成#include <iomanip.h> 
#include <string.h>
using namespace std;
 
int main()
{
	int M=0;  //十进制数M 
	int N=0;  //N进制数 
	int i=0;  
	int array[100];	//用于存储M除N的余数 
	int zero=1;  //循环标志位,如果是0,就说明已经可以退出循环 
	string str="0123456789ABCDEF",str1="";
	cin>>M>>N; //输入 
	if(M<0)  //判断M是否小于0 
	{
		cout<<"-";
		M=-M;
	}
	if(M==0)//判断M是否等于0 
	{
		cout<<0<<endl;
	}
	while(zero!=0)//求余数
	{
		str1=str[array[i]=M%N]+str1;
		i++;
		zero=(int)M/N;
		M/=N;		
	}
	cout<<str1<<endl; //输出 
    return 0;
}
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号