http://acm.hdu.edu.cn/showproblem.php?pid=2031

利用vector
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N,R,res,flag=1;
vector<char> ivec;
while(cin>>N>>R){
while(N!=0)
{
flag=1;
if(N<0)
cout<<"-";
N=abs(N);
res=N%R;
if(res<10)
ivec.push_back(res+48);
else if(res==10)
ivec.push_back('A');
else if(res==11)
ivec.push_back('B');
else if(res==12)
ivec.push_back('C');
else if(res==13)
ivec.push_back('D');
else if(res==14)
ivec.push_back('E');
else if(res==15)
ivec.push_back('F');
N=N/R;
}
for(vector<char>::reverse_iterator iter=ivec.rbegin();iter!=ivec.rend();++iter)
cout<<*iter;
ivec.clear();
cout<<endl;
}
return 0;
}
本文介绍了一种使用C++标准库中的vector容器来实现任意进制数转换的方法。通过不断取余并根据余数的不同将数值转换为相应的字符,最终实现从十进制到指定进制的转换。

620

被折叠的 条评论
为什么被折叠?



