解题思路:  

题目:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。

 若n = 4 ,  Sn=   2 +22 + 222 +2222  = 2468

 我们可由上式发现如下规律:(以n = 4为例)

                                    2 +

                                  22 +

                                222 +

                              2222 = Sn

  n=4时,我们个位的一整列来看,个位有4个2,十位有3个2,百位有2个2……,个位相加得结果为2 * 4 = 8,十位结果为2 * (4 - 1) = 6,百位结果为2 * (4 - 2) = 4……,我们可以试着加一下,Sn = 8 + 60 + 400 + 2000 = 2468,每一项(代码中用item表示)通式为:2 * n * pow(10, i)。


注意事项: 

 1、首先确定n的值,然后for循环n次就可以了。

 2、i的范围不能随着n的变化的改变而改变,要有一个固定值range。


参考代码:

#include#includeint main()
{
    int n = 0, Sn = 0, item = 0;     //Sn是指求和符号,item是指每一项的数值
    scanf("%d", &n);
    int range = n;      //由于下面for循环语句中有n--是不断变化的,需要一个固定范围range来决定i的遍历次数
    for(int i = 0;  i < range;  i ++)
        {
            item = 2 * n * pow(10, i);
            Sn += item;
            n --;
        }
    printf("%d", Sn);
    return 0 ;
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

Jayden 11月前 回复TA
欢迎各位大佬来评论区交流!