数字比较-牛客网

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

输入例子1:
2 2
输出例子1:
=
输入例子2:
2 4
输出例子2:
=

解题思路:
当x = y 时 x^y = y^x
考虑到对数函数logaN的性质a>1 时,N>1则logaN>0,N<1时,logaN<0,N=1,时,logaN=0
由此:取a = 10 ,N = x^y /y^x即判断 lg(x^y/y^x)的符号可以判断(x^y/y^x)与1的关系。
即判断ylgx-xlgy。 >0 则(x^y/y^x)>1 即x^y > y^x。


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
            // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        int y = scanner.nextInt();
        String res = cal(x,y);
        System.out.println(res);
    }

    private static String cal(int x, int y) {
        if(x == y)
            return "=";
        if(x == 1)
            return "<";
        if(y == 1)
            return ">";
        double d1 = y * Math.log(x);
        double d2 = x * Math.log(y);
        if(d1 == d2){
            return "=";
        }
        if(d1>d2)
            return ">";
        return "<";
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值