您的位置:首页 > 其它

Project Euler Problem 99 Largest exponential

2017-03-23 21:11 483 查看
Largest exponential

Problem 99

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.

C++:
#include <iostream>
#include <cmath>
#include <string>
#include <fstream>

using namespace std;

int main()
{
long b, e, max, temp;
int ans=0, no=0;
string filename;

cin >> filename;
ifstream inf(filename, ios::in);

char c;
while(inf >> b >> c >> e) {
no++;
temp = (long) (e * log(b));
if(temp > max) {
max = temp;
ans = no;
}
}

cout << ans << endl;

inf.close();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: