sdut 1252進数変換

2881 ワード

しんしんへんかん



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

ヒント

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int n, r;
    char s[200];
    while(~scanf("%d %d", &n, &r)){
        if(n==0){
            printf("0
"); continue; } if(n < 0){ printf("-"); n = -n; } int m; int i = -1; while(n > 0){ m = n%r; if(m<=9){ s[++i] = '0'+m; }else { s[++i] = m-10+'A'; } n /=r; } for(int j = i;j >=0;j--){ if(j ==0){ printf("%c
", s[j]); }else { printf("%c",s[j]); } } } return 0; }