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;
}

 

posted on 2022-04-09 20:30  zesure  阅读(59)  评论(0编辑  收藏  举报

导航