进制转换 HDU2031

来源:互联网 发布:流体 热能 仿真软件 编辑:程序博客网 时间:2024/05/17 02:14

进制转换



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

开始在9那忘记加等于号,醉了,一直没找出来,无限WA,要严谨!仔细!

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){    int arr[1000];    int r,len,flag;    long long a;    while(cin>>a>>r){            len=0;            flag=0;            if(a==0){                cout<<a;                }        while(a!=0){              if(a<0){               a *= -1;;               flag=1;              }            arr[len++]=a%r;            a/=r;    }        for(int i = len-1;i>=0;i--){                if(flag){                    cout<<"-";                    flag=0;                }            if(arr[i]<=9)                cout<<arr[i];            else            {                printf("%c",arr[i]-10+'A');            }        }    cout<<endl;    }    return 0;}




0 0
原创粉丝点击