C++程序设计 (第三版) 谭浩强 习题3.17
习题 3.17 求 S n = a + a a + a a a + ⋅ ⋅ ⋅ + a a ⋅ ⋅ ⋅ a ⏟ n 个 a S_n=a+aa+aaa+···+\underbrace{aa···a}_{n个a} Sn=a+aa+aaa+⋅⋅⋅+n个a aa⋅⋅⋅a之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块:
方法1:
#include <iostream>
using namespace std;
int main(){
int a, n, sum, i, j, t;
cout<<"Please enter a, n: ";
cin>>a>>n;
for(i = 1, sum = 0, t = a * i, j = 0; j < n; sum += t, i *= 10, t = a * i + t, j++);
cout<<"sum= "<<sum<<endl;
system("pause");
return 0;
}
方法2:使用函数的模块化设计
#include <iostream>
using namespace std;
void sumA(int a, int n){
int sum = 0;
int base = 10;
int temp = a;
for(int i = 0; i < n; i++){
sum += a;
a = a * base + temp;
}
cout<<"Sum = "<<sum<<endl;
}
int main(){
int a, n;
cout<<"Enter A, N: ";
cin>>a>>n;
sumA(a, n);
system("pause");
return 0;
}