第十一届蓝桥杯——REPEAT程序(傻瓜式解法)

前言

突然想起来貌似有好几个月没发过博客了,最近参加了蓝桥杯,分享一下关于这题我的投机解法
此解法适用于C/C++与Python都有了解的朋友。如果看完本篇还不理解,请直接砍我吧。
最后提醒一遍,答案不是403!答案不是403!答案不是403!,403只是代码片段的结果,并不是整个代码程序!!!

问题描述

附件 prog.txt 点我下载 中是一个用某种语言写的程序。
其中 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 的值是多少?

答案提交
这是一道结果填空题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

我的特殊解法

当时看到这题突然就蒙了,道行不深,1000行代码叫我怎么看。好在我机智了一回,因为这个是填空题,不要求写出具体的C/C++代码,所以我们可以另辟蹊径。

相信大家已经看到我把缩进加粗了,由于比赛的机器中有Python环境,于是我立马就开窍了,既然是
缩进的语法,那么就可以尝试把这个文件的代码修改成Python的语法。之后再往代码末尾加一句print(A)
接着用IDEL跑一遍,最后自信把输出结果填上去,ok,进入下一道题。
下面是具体操作,

  1. 打开prog.txt
  2. ctrl+H打开文本替换(相信会python的朋友到这一步应该恍然大悟了)
  3. “REPEAT ”引号括起的内容全部替换为for _ in range(0,
  4. :全部替换为):
  5. 在代码末尾加上一行print(A)
  6. 用IDEL运行一遍
  7. 得出结果241830

关键时候还是python拉了我一把。

以上

猜你喜欢

转载自blog.csdn.net/WildSky_/article/details/107548472