概要
附件 prog.txt 中是一个用某种语言写的程序。附件在本文的末尾。
其中 REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,从次行开始连续的缩进比该行多的(前面的空白更长的)为循环包含的内容。
该片段中从 A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的循环两次中。
REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环中。
A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。
请问该程序执行完毕之后,A 的值是多少?
整体架构流程
技术细节
(看不懂没关系,人家给你这个让你分析在这个运算中,①REPEAT k 表示一个次数为 k 的循环【也就是说repeat(重复)2,一个次数为 2 的循环就是重复让值<2】②A=A+5运行几次)
#include <stdio.h>
int main() {
int A = 0;//为了方便理解这里运算公式和图片一致
for (int i = 1; i <= 2;i++) {
A = A + 4;
for (int j = 1; j <= 5; j++) {
for (int k = 1; k <= 6; k++) {
A = A + 5;
}
A = A + 7;
}
A = A + 8;
}
A = A + 9;
printf("A=%d",A);
}
分析案例
#include <iostream>
using namespace std;
int main()
{
int res = 0;
for (int i = 0; i < 2; i++)//REPEAT 2
{
res += 4;//A = A + 4;
for (int j = 0; j < 5; j++)//REPEAT 5
{
for (int p = 0; p < 6; p++)//REPEAT 6
{
res += 5;//A = A + 5;
}
res += 7;//A = A + 7;
}
res += 8;//A = A + 8;
}
res += 9;//A = A + 9;
cout << res;//输出A(res)
return 0;
}