ganmu


私信TA

用户名:dotcpp0726067

访问量:3509

签 名:

等  级
排  名 1522
经  验 2812
参赛次数 0
文章发表 104
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

通过观察题目得知,题中的2,22,222......这每一项均满足等比数列前n项和的要求

以222为例:

222=2*10^0+2*10^1+2*10^2=2+20+200

故我们可以通过等比数列前n项和公式求解出最后一项的值

即:Sn=a1*(1-q^n)/(1-q)   其中a1为首项(2),q为公比(10),n为用户输入值

得到最后一项后可依法炮制得到前面所有项,再累加即可

注意事项:



参考代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

    int a, c, d;

    int sum=0;

    cin >> a;

    d = a;//提前拿到a值以备用

    for (int i = 0; i < a; i++)

    {

        c = 2 * (1 - pow(10, d)) / (1 - 10);

        sum += c;

        d--;//拿到每一项的值

    }

    cout << sum << endl;

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »