Input
输入的第一行包括两个整数n和x(1 ≤ n ≤ 10, 2 ≤ x≤ 40),分别代表第一个数字的数位 个数和进制,第二行包括n个整数,代表a从高位开始的各个数位 输入的第三行包括两个整数m和y(1 ≤ m ≤ 10,2 ≤ y≤ 40, x≠ y),分别代表第二个数字的 数位个数和进制,第四行包括m个整数,代表b从高位开始的各个数位
Output
若a<b,输出‘<’ 若a=b,输出‘=’ 若a>b,输出‘>’
Example
样例输入① 6 2 1 0 1 1 1 1 2 10 4 7 样例输出① = 样例输入② 3 3 1 0 2 2 5 2 4 样例输出② <
超级水题,将所有数转成10进制即可,然而我不会进制转换……于是卡住了……
代码如下
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<functional>
#include<map>
using namespace std;
const int maxn = 1500;
typedef long long ll;
ll n,m,x,y;
ll a;
ll b;
ll sum1=0;
ll sum2=0;
int main()
{
ios::sync_with_stdio(false);
cin >> n >> x;
for (int i = 1; i <= n; i++) {
cin >> a;
sum1 = sum1*x + a;
// cout << sum1 << endl;
}
cin >> m >> y;
for (int i = 1; i <= m; i++) {
cin >> b;
sum2 = sum2*y + b;
}
if (sum1 == sum2)
cout << "=" << endl;
if (sum1 < sum2)
cout << "<" << endl;
if (sum1 > sum2)
cout << ">" << endl;
return 0;
}