我正在解决 C++ 中的项目 euler 问题,并且在问题 22 上坚持使用我的代码。下面是我的 cpp,我得到的答案是 871202730,或者 4448 太高了。我已经输出了排序列表并检查了一些名称分数是否计算正确以及我的名称数量是否正确。希望这很简单,我只需要一些新鲜的眼睛来看看它。 链接到问题。
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main() {
int sum = 0;
vector<string> names;
char name[50], junk[5];
string str;
ifstream inFile;
inFile.open("docs/names.txt");
while(!inFile.eof()) {
inFile.getline(junk, 50, '/"');
inFile.getline(name, 50, '/"');
stringstream sstr;
sstr << name;
sstr >> str;
names.push_back(str);
}
sort(names.begin(), names.end());
for(int i=0; i<names.size(); i++) {
int namesum = 0;
for(int j=0; j<names[i].size(); j++)
namesum += (names[i][j] - 64);
sum += (namesum*i);
}
cout << "Sum: " << sum << endl;
return 0;
}