附件 prog.txt 中是一个用某种语言写的程序。
prog.txt 下载地址:Here
其中 REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,从次行开始连续的缩进比该行多的(前面的空白更长的)为循环包含的内容。
例如如下片段:
REPEAT 2:
A = A + 4
REPEAT 5:
REPEAT 6:
A = A + 5
A = A + 7
A = A + 8
A = A + 9
该片段中从 A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的循环两次中。
REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环中。
A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。
请问该程序执行完毕之后,A 的值是多少?
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:241830
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 10;
int w[10];
int main() {
fstream fs("D:\\Coding\\Cpp\\LanQianCup\\2020B1\\LQC-2020B1-04.txt");
string s;
int A = 0;
while (getline(fs, s)) {
int len = s.size();
int id = (len - 5) / 4;
if (s[len - 1] == ':') w[id] = s[len - 2] - '0';
else {
int time = 1;
for (int i = 1; i < id; i++) time *= w[i];
A += time * (s[len - 1] - '0');
}
}
cout << A << "\n";
}