美文网首页
笔试刷题-牛客网2018-08-12

笔试刷题-牛客网2018-08-12

作者: Dodo159753 | 来源:发表于2018-08-12 07:47 被阅读0次

    题目描述:

    /**
    牛牛很喜欢对数字进行比较,但是对于3 > 2这种非常睿智的比较不感兴趣。
    上了高中之后,学习了数字的幂,他十分喜欢这种数字表示方法,比如xy。
    由此,他想出了一种十分奇妙的数字比较方法,
    给出两个数字x和y,
    请你比较x^y和y^x的大小,如果前者大于后者,
    输出">",小于则输出"<",等于则输出"="。
    输入描述:
    两个数字x和y。
    满足1 <= x,y <= 109
    输出描述:
    一个字符,">","<"或者"="。
    输入例子1:
    2 2
    输出例子1:
    =
    输入例子2:
    2 4
    输出例子2:
    =
    */
    
    

    思路如下:

    其实是比较
    logx/x是一个
    x>=3时候是一个单调递减函数
    x==y时候直接相等
    x!=y时候
    默认x<y
    若y>x>3 直接用单调性解决
    若x=1 y>x 返回<
    若x=2 y=4返回等于 y!=4 返回小于

    代码如下:

    #include<stdio.h>
    #include<iostream>
     
    using namespace std;
     
    int main()
    {
        int x, y;
        scanf("%d%d", &x, &y);
        bool isSwapped=false;
        if(x>y){
            isSwapped=true;
            swap(x, y);
        }
        int flag=0;
        if(x!=y){
            if(x>3){
                flag=1;
            }
            else if(x==2){
                if(y>4){
                    flag=1;
                }
                else if(y<4){
                    flag=-1;
                }
            }
            else if(x==1){
                flag=-1;
            }
            else{
                return -1;
            }
        }
        if(isSwapped)
            flag=-flag;
        if(flag>0){
            printf(">");
        }
        else if(flag<0){
            printf("<");
        }
        else{
            printf("=");
        }
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:笔试刷题-牛客网2018-08-12

          本文链接:https://www.haomeiwen.com/subject/oxojbftx.html