a+aa+aaa+...+(aaa...a)

1.问题描述

    求 Sn=a+aa+aaa++(aaaa) n个a的值,其中a是一个数字,a和n都由键盘输入。例如,2+22+222+2222+22222(此时a=2,n=5)

2.思路分析

  1. 首先,这个题目中Sn求和形式告诉我们,这道题一定要用到循环结构,用到循环结构就要定义循环变量,这道题我们定义循环变量为i以及循环退出的条件为i>n。
  2. 其次是当a=2,n=5的时候,这个i应该从1遍历到5,看题目中a,aa,aaa,aaaa,aaaaa这样的形式,i显然代表的是数字的位数,分别代表各个位数都是相同数字a的1,2,3,4,5位数。
  3. 然后我们要做的就是表示这些数字,我们定义求和变量sum=0表示求和变量的初始值为0,然后定义表示这些数字的临时变量temp=0,temp刚开始表示的是0。那么根据式子的形式表示成10进制,aa=0*10+a,aa=a*10+a,aaa=aa*10+a,aaaa=aaa*10+a,aaaaa=aaaa*10+a。这样我们看出来了结构上的相似性,能很方便的用循环来表示,并且计算i+1位数的数字的时候都利用到了i位数的数字,对这个过程反复迭代,temp=temp*10+a就实现了这样的想法,与此同时我们要就行累加求和的操作,sum=sum+temp,等到循环结束后,我们就得到了想要的结果。

    迭代

    累加
  4. 最后我们要确定展现我们结果的方式,我们发现当i=(1,2,3,4)的时候每一项和后面都跟了一个字符’+’,我们输出temp+”+”,并且不勾选换行选项,让结果展示在一行里面,最后一项也就是i=5的时候,后面没有跟字符,只是输出了那个数字,我们输出temp就好了,同时为了确保在一行显示也不勾选换行选项。现在我们已经得到了这个表达式的和也就是sum,最后我们输出”=”+sum,同时也不勾选那个换行选项,我们就把这道题目的所有工作完成了,并且展示结果也全部在一行,像这样2+22+222+2222+22222=24690。


    a+aa+aaa+...+(aaa...a)_第1张图片

    part 2

  5. 以上是我们对a=2,n=5的情形的一个完整分析,随后我们可以任意改变a和n的值来得到结果。

3.结果展示

    我们分别令a=2,n=5和a=8,n=9看看结果


a+aa+aaa+...+(aaa...a)_第2张图片

4.流程图


a+aa+aaa+...+(aaa...a)_第3张图片


    以上就是Raptor中本篇教学的详细内容,这篇博客只提供教学(私以为已经足够详细),再不会编程序的话需要程序请联系QQ545030769

你可能感兴趣的:(Raptor)