提交时间:2023-09-02 16:58:49

运行 ID: 26328

#include <iostream> using namespace std; char ch[17] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; int kto10(char chnum[], int n) { int sum = 0, temp = 1; for (int i = strlen(chnum) - 1; i >= 0; i--) { if (chnum[i] >= 'A' && chnum[i] <= 'F' ) { sum = sum + (chnum[i] - 'A' + 10) * temp; } else { sum = sum + (chnum[i] - '0') * temp; } temp *= n; } return sum; } void DtoK(int num, int m) { if (num == 0) { return; } DtoK(num / m, m ); cout << ch[num % m]; } int main() { int n, num, m; char chnum[10]; cin >> n; if (n == 10) { cin >> num; } else { cin >> chnum; } cin >> m; if (n == 10) { DtoK(num, m); } if (n != 10 && m == 10) { cout << kto10(chnum, n); } if (n != 10 && m != 10) { num = kto10(chnum, n); DtoK(num, m); } }