0.这个版本简单
1.逻辑梳理
1.1梳理
像这样的代码,首先得分析大致方向
剖析出来就是 :相同元素的相加。关键是这些数字怎么生成,累加过程暂时不考虑
我首先想到的是自定义代码,不断自己调用自己,生成同一元素的数字,这样的话,但是,话又说回来,自定义代码,输入相同的元素怎么会出现不一样的结果(至少我现在没想到),所以,自定义函数这条路行不通。
自定义不行的话,就用笨方法,在主函数里面实现这个过程。
接下来,确定函数的地方之后,开始想另一个问题,怎么生成
这些数都有一个共同的特点,除了个位数,他们都可以以这种方式生成 10*2 / 100*2+10*2 / 1000*0+100*2+10*2
拉出来,不就是10,100 1000 10000这些数逐步出现,在*2。
这个过程定为对10 100 1000 10000的循环生成,在*2即可。但是随即新的问题出现,每次只是生成20 200 2000 200000这样的数,跟题目不符啊。
将这些循环生成的整数,相加即可,这样就会得到题目中的数字了,也就是在循环生成10 100 的同时,还要将这些*2 循环 相加,所以目前有两个循环系统了。(20 220 2220 22220)
最后是将由两个循环系统得出来的数字 经又一次循环+2后 相加即可,(22 +222+2222+22222)
1.2总结
接下来是看循环之间的联系。
一共三个循环。最里面的是用来控制生成最大的那位数的,中间的一层是用来生成题目数字但是缺少个位数的,最外面一层是用来生成中间数+2后相加的。
1.3重点
三个循环之间的联系是最重要的,一定要确定三个之间的衔接关系。