L - NP-hard
题目描述
gk喜欢1,所以他想问你在nn的xx进制和nn的yy进制表示中哪个1多?如果nn的xx进制表示中1的个数大于nn的yy进制表示中1的个数输出>>,等于输出==,小于输出<<
输入格式
第一行一个整数TT表示接下来有TT组测试样例.
接下来T行,每行有三个整数n,x,yn,x,y
(1≤t≤10000,2≤x,y≤10,1≤n≤1e91≤t≤10000,2≤x,y≤10,1≤n≤1e9)
输出格式
对于每一个测试样例输出是大于,小于,还是等于
由于太摸鱼而惭愧到写题解.jpg
核心思路是二进制怎么算这玩意就怎么算.jpg
#include <iostream> using namespace std; int get(int n,int a) { int ans=0; while(n) { if(n%a==1) ans++; n/=a; } return ans; } int main() { int sum;cin>>sum; while(sum--) { int n,a,b; cin>>n>>a>>b; a=get(n,a); b=get(n,b); if(a>b) cout<<'>'<<endl; else if(a==b) cout<<'='<<endl; else if(a<b) cout<<'<'<<endl; } return 0; }