请问这道任意进制转换应该怎么做呢,希望有人能帮个忙
题目描述进制转换(二)
输入K进制的正整数N,请把N化为L进制后输出。(N<1000000;L,K<=16)
有多组数据。
输入格式:
K N L
输入
输出
样例输入
8 10 2
10 10 16
样例输出
1000
A
提示
我已经做了一段程序,不知道如何把十进制以上转成十进制。
#include <iostream> #include <string> #include <algorithm> using namespace std; std::string K_to_L( unsigned K, const std::string& N, unsigned L ) { // K进制的字符串N 转化为数值value unsigned value = 0; for( size_t i=0; i!=N.size(); ++i ) { if( N[i] <= '9' ) value = value*K + (N[i]-'0'); else value = value*K + (N[i]-'A'+10); } // 数值value 转化为L进制的字符串str std::string str; for( ; value!=0; value/=L ) { if( value%L <= 9 ) str.push_back( value%L + '0' ); else str.push_back( value%L-10 + 'A' ); } std::reverse( str.begin(), str.end() ); // 反序 if( str.empty() ) str.push_back( '0' ); return str; } int main( void ) { unsigned K, L; std::string N; for( ; cin>>K>>N>>L; ) { cout << K_to_L(K,N,L) << endl; } }