HDU 2031 进制转换

来源:互联网 发布:诺基亚n78几g网络 编辑:程序博客网 时间:2024/06/08 18:30

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2031

Problem Description
输入一个十进制数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<cstring>using namespace std;int main(){//    freopen("E:\\in.txt","r",stdin);    int n,s;    char str[6]={'A','B','C','D','E','F'};    while(cin>>n>>s){        if(n<0) cout<<"-";        if(n==0) {cout<<"0"<<endl; continue;}        int i=0,a[100],t;        memset(a,0,sizeof(a));        for(t=0;n!=0;i++){                        a[t++]=n%s;            n/=s;        }        for(i=t-1;i>=0;i--){            if(a[i]<0)                a[i]=-a[i];            if(a[i]>9){                cout<<str[a[i]-10];                    continue;            }            cout<<a[i];        }        cout<<endl;    }    return 0;}


0 0
原创粉丝点击