解题思路:看到本题的公式求和,第一反应是用for循环

等比数列求和公式 S=a*(1-q^n)/(1-q),q为公比,a为首项,n为等比数列的项数。

定义一个变量i,i小于等于n。

i为1时,Sn=2=2*1=2*10^(i-1)

i为2时,Sn=22=2*11=2*(10^(i-1)+10^(i-i))

i为3时,Sn=222=2*111=2*(10^(i-1)+...+10^(i-i))

......

i为n时,Sn=22..222=2*11..111

                 =2*(10^(i-1)+10^(i-2)+...+10^(i-i))

                 =2*(1-10^i)/(1-10)

                 =2*(10^i-1)/9

利用for循环,不停地将Sn加上求出来的等比数列求和公式2*(10^i-1)/9赋值给Sn。


参考代码:

              #include <iostream>

              #include <math.h>

              using namespace std;

              int main()

              {

                     int n,a=2,Sn=0,i;

                     cin>>n;

                     for(i=1;i<=n;i++)

                     {

                           Sn=Sn+a*(pow(10,i)-1)/9;

                     }

                     cout<<Sn;

                     return 0;

                  }


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

路拾骨 4年前 回复TA
棒棒哒