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;
}




posted @ 2017-11-04 22:52  P_langen  阅读(98)  评论(0编辑  收藏  举报