2191 - 十进制转16进制
输入十进制数, 转换成16进制.
Input
有多行数据,每一行数据N的数值范围在[0, 231 - 1].
(用for 或while循环实现,不用API提供的直接转换方法)
Output
每一行输出N所对应的十六进制。
Examples
Input
2012 2013
Output
7DC 7DD
Solution C
#include<stdio.h> int main(){ int num; while(scanf("%d",&num)!=EOF){ int i; int b[100]; for(i=0;i>=0;i++) { b[i]=num%16; if(num/16==0) break; num=num/16; } for(i=i;i>=0;i--) { if(b[i]==10) printf("A"); else if(b[i]==11) printf("B"); else if(b[i]==12) printf("C"); else if(b[i]==13) printf("D"); else if(b[i]==14) printf("E"); else if(b[i]==15) printf("F"); else printf("%d",b[i]); } printf("\n"); } return 0; }
Solution C++
#include<iostream> #include<vector> using namespace std; void Translate(int a){ vector<char> v; do{ int remain=0; remain=a%16; if(remain>9) v.push_back('F'-(15-remain)); else v.push_back(char(remain)+48); a=a/16; }while(a>0); for(int i=v.size()-1;i>=0;i--) cout<<v[i]; cout<<endl; } int main(){ int a; while(cin>>a){ Translate(a); } return 0; }