题意
给定两种不同进制下的数,问两者的大小关系
题解
暴力好了,递归处理,O(n)复杂度
#include<bits/stdc++.h>
using namespace std;
int a[20];
int b[20];
void solve(int arr[],int len,int base,int i,long long &x)
{
x+=arr[i];
if (i==len) return ;
else
{
x*=base;
solve(arr,len,base,i+1,x);
}
}
long long f(int arr[],int len,int base)
{
long long ans=0;
solve(arr,len,base,1,ans);
return ans;
}
int main(void)
{
#ifdef ex
freopen ("in.txt","r",stdin);
#endif
int n1,n2;
int b1,b2;
scanf("%d%d",&n1,&b1);
for (int i=1;i<=n1;++i)
{
scanf("%d",&a[i]);
}
scanf("%d%d",&n2,&b2);
for (int i=1;i<=n2;++i)
{
scanf("%d",&b[i]);
}
long long x=f(a,n1,b1);
long long y=f(b,n2,b2);
if (x==y)
{
printf("=\n");
}
else if (x>y)
{
printf(">\n");
}
else
{
printf("<\n");
}
}
代码使用了传引用的C++特性,难得……