HDU_2031进制转换

来源:互联网 发布:python dll 编辑:程序博客网 时间:2024/05/18 00:14
输入一个十进制数N,将它转换成R进制数输出。
 

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

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

Sample Input
7 223 12-4 3
 

Sample Output
1111B-11

代码:

#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){int a , b , i, j;int s[1001];while(cin>>a>>b){i = 0;if(a < 0){a = -a;   cout<<"-";}while( a > 0 ){s[i] = a % b;a = a / b;i++;}for( j = i - 1; j >= 0; j--){if( s[j] >= 10){s[j] = s[j] - 10 + 'A';printf("%c",s[j]);}else   cout<<s[j];}cout<<endl;}return 0;}
思路解析:

先判断正负,输出时多加一个负号即可。

不直接判断b是否大于10,判断结果是否大于10,如果结果大于10,把数字转换成对应的大写字母并输出即可,

否则输出结果。

0 0
原创粉丝点击