您的位置:首页 > 编程语言 > C语言/C++

山东理工大学ACM平台题答案关于C语言 1252 进制转换

2013-12-14 16:33 260 查看

进制转换


Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^

题目描述

输入一个十进制数N,将它转换成R进制数输出。

输入

输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。

输出

为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

示例输入

7 2
23 12
-4 3


示例输出

111
1B
-11


提示

来源

HDOJ

#include <stdio.h>

void main()

{

int n,r,k,i;

char b[100];

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

{

if (n == 0)

{

printf("0\n");

continue;

}

if (n < 0)

{

printf("-");

n *= -1;

}

k = 0;

while(n)

{

b[k++]=n%r;

n/=r;

}

for(i=k-1;i>=0;i--)

{

if(b[i]>9)b[i]+='A'-10;

else b[i]+='0';

printf("%c",b[i]);

}

printf("\n");

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: