sdut 1252進変換
2167 ワード
進数変換Time Limit:1000 ms Memory limit:65536 Kに疑問がありますか?ここをクリック^^;タイトル記述10進数Nを入力し、R進数出力に変換します.入力入力データは、2つの整数N(32ビット整数)およびR(2<=R<=16、R<>10)を含む複数の試験例を含む.出力は、テストインスタンスごとに変換された数を出力し、出力ごとに1行を占めます.Rが10より大きい場合、対応する数値規則は16進数(例えば、10はAで表されるなど)を参照する.サンプル入力
7 2 23 12 -4 3
サンプル出力
111 1B -11
7 2 23 12 -4 3
サンプル出力
111 1B -11
#include <bits/stdc++.h>
using namespace std;
void f(int n,int r)
{
if(n > 0)
{
f(n / r, r);
if(n % r < 10)
printf("%c",n%r+48);
else
printf("%c",n%r+55);
}
}
int main()
{
int n,r;
while(cin>>n>>r)
{
if(n == 0)
cout<<0<<endl;
else if(n > 0)
{
f(n,r);
cout<<endl;
}
else
{
cout<<"-";
f(-n,r);
cout<<endl;
}
}
return 0;
}