在做这种程序填空的时候在13年的真题中一眼看出来了,以至于做14年代码量比较高的时候没什么头绪,题目也难看懂。在看完郑未老师的题解后,自己再做过一遍,总结了以下几点:
1.先将多余的东西注释掉,然后编译
2.从主函数看起
3.将代码转化为文字,结合题目看
4.必要时可以单步调试
在这道题中,从主函数看,调到多位数乘以7的函数中,在必要的代码旁打上注释,发现里面有计算个位和计算进位的函数,先看计算个位的,结合题意来看,比较容易看得懂,接下来到计算进位的函数。在这个过程中虽然知道是对原串进行拷贝,但是不明白在tr<0时为什么返回的是i+1,结果我单步调试,发现了这个循环是从0开始的,所以必然比题目说的进位少一,所以如果比题目给的串大就需要进位,反正若(tr>0)猜测返回是要不是i要不是i-1。经过验算为返回i。
代码如下: