洛谷P1143 进制转换
题目链接:P1143 进制转换 - 洛谷 | 计算机科学教育新生态
题目难度:普及—
解题思路:本题先将输入的数转为10进制,然后取模,最后倒着输出就好了,最后直接上代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;int n,m;
string s;int read()
{int s = 0, f = 1;char ch = getchar();while (ch < '0' || ch > '9') {if (ch == '-') f = -1;ch = getchar();}while (ch >= '0' && ch <= '9') {s = s * 10 + ch - '0';ch = getchar();}return s * f;
}int main()
{n = read(),cin >> s,m = read();int sum = 0,t;for(int i = 0; i < s.size(); i++) {if(s[i] < 'A'){t = pow(n,s.size() - 1 - i);t *= (s[i] - '0');sum += t;}else {t = pow(n,s.size() - 1 - i);t *= (s[i] - 'A' + 10);sum += t;}}vector<int>c;while(sum > 0){c.push_back(sum % m);sum /= m;}for(int i = c.size() - 1; i >= 0; i --){if(c[i] >= 10) cout<<char(c[i] - 10 + 'A');else cout<<c[i];}return 0;
}