C语言实现 sn = a + aa + aaa + ...
以下是一个C语言程序,用于计算 sn = a + aa + aaa + aaaa + ... 的前n项和,其中a是一个1-9的数字。

(图片来源网络,侵删)
#include <stdio.h>
#include <math.h>
int main() {
int a, n;
long long sum = 0, term = 0;
printf("请输入数字a(1-9): ");
scanf("%d", &a);
printf("请输入项数n: ");
scanf("%d", &n);
if (a < 1 || a > 9) {
printf("错误:a必须是1-9之间的数字\n");
return 1;
}
for (int i = 1; i <= n; i++) {
term = term * 10 + a; // 构建每一项:a, aa, aaa, ...
sum += term; // 累加到总和中
}
printf("前%d项的和为: %lld\n", n, sum);
return 0;
}
程序说明:
-
输入处理:
- 用户输入数字a(1-9)和项数n
- 检查a是否在有效范围内
-
计算过程:
- 使用
term变量来构建每一项的值 - 每次循环,
term = term * 10 + a会构建出:- 第1次:a
- 第2次:aa (即a*10 + a)
- 第3次:aaa (即aa*10 + a)
- 以此类推
- 将每一项的值累加到
sum中
- 使用
-
输出结果:
打印前n项的和
(图片来源网络,侵删)
示例运行:
请输入数字a(1-9): 2
请输入项数n: 3
前3项的和为: 246
解释:2 + 22 + 222 = 246
这个程序可以高效地计算任意长度的序列和,只要结果不超过long long类型的范围。

(图片来源网络,侵删)
