給定單一數字 a (1~9) 與項數 n,求和:
S = a + aa + aaa + ... (共 n 項)
例如 a=3, n=4:3 + 33 + 333 + 3333 = 3702
第 k 項 T_k = T_{k-1} × 10 + a,T_1 = a
迴圈中累加即可:
int term = 0, sum = 0;
for (int i = 0; i < n; i++) {
term = term * 10 + a; // 產生下一項
sum += term; // 累加
}
#include <stdio.h>
int main()
{
int a, n;
printf("請輸入數字 a (1-9): ");
scanf("%d", &a);
printf("請輸入項數 n: ");
scanf("%d", &n);
if (a <= 0 || a >= 10 || n <= 0) {
printf("輸入錯誤!\n");
return 1;
}
int term = 0, sum = 0;
for (int i = 0; i < n; i++) {
term = term * 10 + a;
sum += term;
}
printf("S = %d\n", sum);
return 0;
}
請輸入數字 a (1-9): 5
請輸入項數 n: 3
S = 615 (5 + 55 + 555)
第 k 項 = a × (10^k - 1) / 9
總和 S_n = a/9 × [ (10 + 10² + ... + 10^n) - n ]
= a/81 × [ 10^(n+1) - 9n - 10 ]
可用 pow() 直接計算,但注意大數溢位(int 只能到 ~9 位數)。
term 歸零初始化n 與迴圈次數對應錯誤a 範圍,導致多位數字輸入邏輯錯誤