黄冈网站建设的方案,电商推广,网站导航是什么,wordpress搬家后全部页面404题目链接#xff1a;
KY235 进制转换2 https://www.nowcoder.com/questionTerminal/ae4b3c4a968745618d65b866002bbd32
描述
将M进制的数X转换为N进制的数输出。
输入描述#xff1a;
输入的第一行包括两个整数#xff1a;M和N(2M,N36)。 下面的一行输入一个数…题目链接
KY235 进制转换2 https://www.nowcoder.com/questionTerminal/ae4b3c4a968745618d65b866002bbd32
描述
将M进制的数X转换为N进制的数输出。
输入描述
输入的第一行包括两个整数M和N(2M,N36)。 下面的一行输入一个数XX是M进制的数现在要求你将M进制的数X转换成N进制的数输出。
输出描述
输出X的N进制表示的数。
示例1
输入
10 2
11
输出
1011
备注
注意输入时如有字母则字母为大写输出时如有字母则字母为小写。
思路
将M进制数转换为N进制数。可以先将数从M进制转换为十进制再从十进制转换为N进制。对于本题需要注意的是进制大于10时就要用字符来表示而这需要实现字符与数字之间的转换。
求解十进制数x的k进制表示时只需不断地对x求余(对k)、求商(除以k),即可由低到高依次得到各个数位上的数。反过来要求由k进制表示的数字的十进制值时需要依次计算各个数位上的数字与该位权重的积(第n位的权重为k-1),然后将它们依次累加即可得到该十进制值。
源代码
#includeiostream
#includestring
#includevector
using namespace std;//例题6.4 进制转换2
//将字符转换成整型数
//题目已说明输入时如有字母则字母为大写。这里在转换字母是要减去A
int CharToInt(char c) {if (c 0 c 9) {return c - 0;}else {return c - A 10;}
}//将整型数转换成字符串
//题目已说明输出时如有字母则字母为小写。这里在转换字母是要加上a
char IntToChar(int n) {if (n 0 n 9) {return n 0;}else {return n - 10 a;}
}int main()
{int m, n;cin m n;string str;cin str;long long num 0;//m进制转10进制for (int i 0; i str.size(); i) {num * m;num CharToInt(str[i]);}//10进制转n进制 “除n取余法”vectorchar nums;while (num ! 0) {nums.push_back(IntToChar(num % n));num / n;}//逆序输出for (int i nums.size() - 1; i 0; i--) {cout nums[i];}cout endl;return 0;
}
提交结果