第十一届蓝桥杯第一场 B组 C/C++ 试题D:REPEAT 程序(10分)

附件 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";
}

在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值