求数列S(n)=a+aa+aaa+...aa...a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如2+22+222+2222+22222(此时n=5)
这个程序读取用户输入的一个数字 a
和一个正整数 n
,计算并输出数列 S(n) 的值。
cpp
#include <stdio.h>
#include <math.h>
int main() {
int a, n;
long sum = 0, term = 0;
printf("输入一个数字 a 和一个正整数 n: ");
scanf("%d %d", &a, &n);
for (int i = 1; i <= n; i++) {
term = term * 10 + a; // 构造当前项
sum += term; // 累加到总和
}
printf("数列 S(n) 的值: %ld\n", sum);
return 0;
}
解代码说明:
term
变量用于存储当前项的值,从a
开始,每次在末尾添加一个a
。sum
变量用于累加所有项的值。- 在循环中,
term
每次乘以 10 并加上a
,从而形成a
,aa
,aaa
等值,然后累加到sum
。