給定個位正整數 a (1-9) 和項數 n (1-9),求 S = a + aa + aaa + ... (n 位 a)。
第 k 項:term_k = term_{k-1} * 10 + a,term_1 = a。
累加:S += term_k。
9 || n < 1 || n > 9);
term = a;
sum = a;
for (int i = 2; i <= n; i++) {
term = term * 10 + a;
sum += term;
}
printf("%d", a);
for (int i = 2; i <= n; i++) {
for (int j = 0; j < i; j++) printf("%d", a);
printf(" + ");
}
printf("\b\b\b = %d\n", sum);
return 0;
}
a(1-9) n(1-9): 3 4 3 + 33 + 333 + 3333 = 3702
term = term * 10 + a 利用十進制位權構造下一項,無需字符串操作。 + 。特殊數列求和通過迭代構造項 + 累加,避免了大整數或字符串運算。同理可解決 1 + 11 + 111、2 + 22 + 222 等變體,核心公式通用。