1. 程式人生 > 其它 >求Sn=a+aa+aaa+…+aa…aaa(有n個a)

求Sn=a+aa+aaa+…+aa…aaa(有n個a)

技術標籤:演算法演算法c++

求Sn=a+aa+aaa+…+aa…aaa(有n個a)

題目分析

求Sn = a + aa + aaa + … + aa…aaa(有n個a)之值,其中a是一個數字, 為2

例如:2 + 22 + 222 + 2222 + 22222(n = 5),a,n由鍵盤輸入

輸出:24690

過程分析

利用vector向量存放2、22、222、2222、22222的值

每次往vector向量中存放一個值,就計算sum(初始化為0)

程式碼

#include<iostream>
#include<vector>
using namespace std; vector<int> sn; void CalSn(const int a, const int num) { int number = 1, i = 0; int sum = 0; while (i < num ) { if (0 == i) { sn.push_back(a * number); } else { sn.push_back(a * number + sn.at(i - 1)); } number = number * 10; sum += sn.at(i); i++
; } cout <<"Sn=a+aa+aaa+…+aa…aaa(有n"<<"("<<num<<")"<<"個a"<<"("<<a<<"))的值為:" <<sum << endl; } int main() { int a = 2, n = 5; cout << "請輸入a的值:"; cin >> a;
cout << "請輸入n的值:"; cin >> n; CalSn(a, n ); return 0; }

測試結果

在這裡插入圖片描述