面试题:编撰一个将十进制数转换为任意进制的算法或函数

面试题:编写一个将十进制数转换为任意进制的算法或函数

题目:设计一个函数,输入参数1是一个十进制整数,参数2是要待转换的进制,用m表示,如m=8,代表将参数1转换为8进制。并给出输出。

    思路:除积取余,倒排余数。

代码:

#include "stdafx.h"

#include <iostream>

#include <deque>

using namespace std;

 

deque<int>Hexadecimal_Conversion(int n,int m)

{

    deque<int> deqH;

    while(0 != n / m)

    {

       deqH.push_front(n% m);

       n/= m;

    }

    deqH.push_front(n% m);

 

    return deqH;

}

int_tmain(int argc, _TCHAR* argv[])

{

   

    int n = 10;

    int m = 2;

    deque<int> deqT;

    deqT= Hexadecimal_Conversion(n,m);

 

    copy(deqT.begin(),deqT.end(),ostream_iterator<int>(cout,""));

    cout<<endl;

   

    return 0;

}

输出:1 0 1 0

当然,如果输出16进制时,输出时可能需要将10到15转换为A到F