我正在解决从文件中读取输入的问题(两个字符串,所有大写字母最多6个字母)。然后将字符转换为ascii并移位,以便" A"表示为1," Z"然后计算这些数字的乘积。然后检查这两个串的乘积是否等效(模47)。如果它们是等价的," GO"输出到文件。如果他们不相同"保持"是输出。程序运行并产生所需的输出,但是当它不应该花费那么长时间运行需要1秒钟。任何人都可以告诉我为什么运行时是> 1秒钟?
这是我的代码,它不会太长:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ofstream fout ("ride.out"); //create files
ifstream fin ("ride.in");
string cometName, groupName; //initialize vars
fin >> cometName >> groupName;
fin.close();
int cometSum = 1;
int groupSum = 1;
int & cometSumAlias = cometSum;
int & groupSumAlias = groupSum;
for (char & c : cometName) {//iterate through strings and multiply chars
cometSumAlias *= (c - 64);
}
for (char & c : groupName) {
groupSumAlias *= (c - 64);
}
if (cometSumAlias % 47 == groupSumAlias % 47) {//equivalency check
fout << "GO" << endl; //output to file
} else {
fout << "STAY" << endl;
}
fout.close();
return 0;
}