SDUT OJ進数変換


しんしんへんかん


Time Limit: 1000MS Memory limit: 65536K


タイトルの説明


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

0の時の枝切りで、WAを2回掛けさせてもらいましたが、0の時はどんどん余すことができず、そのサイクルに入らず!結果を出力しない!

#include <iostream>

#include <string>

#include <stdio.h>

#include <string.h>

#include <map>

#include <stack>

#include <algorithm>

#include <ctype.h>



using namespace std;



int main()

{

    int n, r, dd, ff;

    int i, j;

    int flag;



    while(scanf("%d %d", &n, &r)!=EOF)

    {

        flag=0;

        stack<int>q;

        if(n==0)  

        {

            printf("0
"); continue; } if(n<0) { flag=1; n=-n; } while(n!=0) { dd = n%r; q.push(dd); n/=r; } if(flag==1) { printf("-"); } while(!q.empty()) { ff=q.top(); q.pop(); if(ff>=10) { printf("%c", ff+55); } else { printf("%d", ff); } } printf("
"); } return 0; }