问题描述
程序提示用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出。
输入格式:输入只有一行,即三个字符。
输出格式:输出只有一行,包括三个整数,中间用空格隔开。
输入输出样例
样例输入
FFF
样例输出
FFF 4095 7777
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <iostream> using namespace std; int main() { int n = 0; char c1, c2, c3; string s(3, '0'), ans8; scanf("%c %c %c", &c1, &c2, &c3); s[0] = c1; s[1] = c2; s[2] = c3; for (int i = 0; i < s.length(); i++) { if (s[i] >= '0' && s[i] <= '9') n = n * 16 + s[i] - '0'; else n = n * 16 + s[i] - 'A' + 10; } if (s[0] == '0') s = s.substr(1, s.length() - 1); if (s[0] == '0') s = s.substr(1, s.length() - 1); cout << s << " " << n << " "; while (n) { ans8 = char(n % 8 + '0') + ans8; n /= 8; } if (ans8 == "") ans8 = "0"; cout << ans8; return 0; } |
❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼