這是我講的 http://projecteuler.net/index.php?section=problems&id=99冪通過磨邊(項目歐拉99)提示我的解決方案
我的代碼將編譯並正常運行的問題。我猜計算是在搞亂的地方。它告訴我,第633行是最大的(該項目歐拉說是不正確的)。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int poww(int base, int exp);
int main()
{
//ignore messy/unused variables. I am desperate
int lineNumber = 0;
string line;
int answerLine = 0;
int max =0;
int lineNum = 0;
int answer =0;
ifstream inFile;
size_t location;
string temp1,temp2;
int tempMax = 0;
int base,exp = 0;
inFile.open("C:\\Users\\myYser\\Desktop\\base_exp.txt");
while(getline(inFile,line))
{
lineNumber++;
location = line.find(",");
temp1 = line.substr(0,(int(location)));
temp2 = line.substr((int(location)+1),line.length());
//cout << temp1 << " " << temp2 << endl;
base = atoi(temp1.c_str());
exp = atoi(temp2.c_str());
tempMax= poww(base,exp);
if (tempMax > max){
max = tempMax;
answer = base;
answerLine = lineNumber;
}
}
cout << answer << " " << answerLine;
cin.get();
return 0;
}
int poww(int base, int exp)
{
int result = 1;
while (exp)
{
if (exp & 1)
result *= base;
exp >>= 1;
base *= base;
}
return result;
}
您需要定義「不正確」。 –
@tedled?什麼是不正確的?它不能編譯?它崩潰?它的工作原理但不正確?它運行時會起火嗎?請具體說明您的問題。 –
已添加。 「我的程序說633行是最大的」。 – tedled