进制和
描述
小强最近学习了进制,希望求不同进制下各个数字的和。给定一个长度为n的数组a,其中每个元素是一个正整数,以pi进制数的形式输入。如果某个数位上的数大于等于10,则会用小写字母表示,如用a表示10,b表示11,依次类推。要求输出这个数组每个数字在十进制下求和的结果。
输入
-
第1行:一个整数n,表示数组的长度。 -
之后的n行:每行两个正整数pi和ai,分别表示进制和该进制下的数字。
输出
-
共一行,输出求和结果。
输入样例 1
3
10 6123
16 ab2
2 11011
输出样例 1
8888
示例解释
输入的每个数字转换为十进制再求和,过程如下:
-
6123(10) = 6123(已经是十进制) -
ab2(16) = 2738(十六进制转换为十进制) -
11011(2) = 27(二进制转换为十进制) -
6123 + 2738 + 27 = 8888
评测用例规模与约定
-
对于100%的评测用例,2 ≤ pi ≤ 36,转换为十进制后0 ≤ ai转换为十进制后 ≤ 10^9(10的9次方)。
这个问题的关键在于将不同进制的数字转换为十进制,然后求和。在C++中,可以使用std::stoi
函数来实现进制转换,但需要特别注意字母表示的数字。