進数変換2031
5693 ワード
Problem Description
10進数Nを入力し、R進数出力に変換します.
Input
入力データは複数の試験例を含み、各試験例は2つの整数N(32ビット整数)とR(2<=R<=16,R<>10)を含む.
Output
変換された数をテストインスタンスごとに出力し、出力ごとに1行を占めます.Rが10より大きい場合、対応する数値規則は16進数(例えば、10はAで表されるなど)を参照する.
Sample Input
7 2 23 12 -4 3
Sample Output
111 1B -11
Author
lcy
Source
C言語プログラミング練習(五)
Recommend
lcy | We have carefully selected several similar problems for you:
2029
2028
2044
2041
2040
1 #include <stdio.h>
2 #include <string.h>
3
4 void ttor(int n, int r)
5 {
6 if (n)
7 {
8 ttor(n / r, r);
9 printf("%c", n % r > 9 ? n % r - 10 + 'A' : n % r + '0');
10 }
11 }
12
13 int main(void)
14 {
15 int n;
16 int r;
17
18 while (scanf("%d%d", &n, &r) != EOF)
19 {
20 if (n > 0)
21 ttor(n, r);
22 else if (!n)
23 putchar('0');
24 else
25 {
26 putchar('-');
27 ttor(-n, r);
28 }
29 putchar('
');
30 }
31
32 return 0;
33 }
1 #include <stdio.h>
2 #include <string.h>
3
4 void ttor(int n, int r)
5 {
6 if (n)
7 {
8 ttor(n / r, r);
9 printf("%c", n % r > 9 ? n % r - 10 + 'A' : n % r + '0');
10 }
11 }
12
13 int main(void)
14 {
15 int n;
16 int r;
17
18 while (scanf("%d%d", &n, &r) != EOF)
19 {
20 if (n > 0)
21 ttor(n, r);
22 else if (!n)
23 putchar('0');
24 else
25 {
26 putchar('-');
27 ttor(-n, r);
28 }
29 putchar('
');
30 }
31
32 return 0;
33 }