Project Euler:99 Largest exponential C++

Comparing two numbers written in index form like 211 and 37 is not difficult, as any calculator would confirm that 211 = 2048 < 37 = 2187.

However, confirming that 632382518061 > 519432525806 would be much more difficult, as both numbers contain over three million digits.

Using base_exp.txt (right click and 'Save Link/Target As...'), a 22K text file containing one thousand lines with a base/exponent pair on each line, determine which line number has the greatest numerical value.

NOTE: The first two lines in the file represent the numbers in the example given above.

 

 

 

用对数做,转化成 n=y*ln x,n为10的指数。也就是比较以10 为底,对数值的大小。

C++中,ln写作log。

实现部分如下:

int n=log(x)*y;
if(max<n){
    max=n;
    ans=num;
}



// ans= 709;

  

posted @ 2017-08-24 12:26  会飞的雅蠛蝶  阅读(183)  评论(0编辑  收藏  举报