给你两个int型的正整数,比较a的b次方与b的a次方的大小。
思路:这道题我们要用到高中所学的知识,当a>0&&b>0分别对a^b和b^a取对数=>blna alnb=>lna/a lnb/b=>lnx/x=>(求导)(1-lnx)/x^2=>x==e(零点)=> (0,e) 单增 (e,+00) 单减
当a<=0&&b>0 b%2==0 a^b>b^a b&1==1 a^b<b^a
当a>0&&b<=0 a^b>b^a
当a<0&&b<0 |a|%2==0 b^a>a^b |b|%2==0 a^b>b^a |a|&&|b|%2==0 (-e,0)单减 (-00,-e)单增 |a|&&|b|&1==1 (-00,-e)单减 (-e,0)单增
#include<stdio.h>
int main(){
int a,b;
while(~scanf("%d%d",&a,&b)){
if(a>b){
int num=a;
a=b;
b=num;
}//强制规定a<b;
char c;
if(a==b) c='=';
else{
if(a>2) c='>';
else if(a==2){ if(b>4) c='>';
else if(b==4) c='=';
else c='<';}
else if(a==1||a==0) c='<';
else if(a<0){
if(b>=0&&b%2==0) c='>';
else if(b>0&&b%2==1) c='<';
else if(b<0) {
if(abs(a)%2==0&&abs(b)%2!=0) c='<';
else if(abs(a)%2!=0&&abs(b)%2==0) c='>';
else if(abs(a)%2==0&&abs(b)%2==0){
if(b<-2) c='>';
else if(b==-2){
if(a<-4) c='<';
else if(a==-4) c='=';
}
}
else{
if(b<-2) c='<';
else if(b==-2){
if(a<-4) c='>';
else if(a==-4) c='=';
}
}
}
}
}
printf("%d^%d%c%d^%d\n",a,b,c,b,a);
}
return 0;
}