給定一位阿拉伯數字 a(1~9),計算前 5 項和:
S₅ = a + aa + aaa + aaaa + aaaaa
例:a=2 → 2+22+222+2222+22222 = 24690
#include#include int main() { int sum = 0, a = 0, b = 0; printf("輸入一個阿拉伯數字: "); scanf("%d", &b); // b 為基本數字 for (int i = 0; i <= 4; i++) { a = a + b * pow(10, i); // 每項 = 前一項 + b*10^i sum += a; } printf("%d\n", sum); return 0; }
a₁ = ba₂ = a₁ + b*10a₃ = a₂ + b*100aᵢ = aᵢ₋₁ + b*10ⁱ⁻¹迴圈累加 a 即可得到各項,再累加至 sum。
int term = 0;
for (int i = 0; i < 5; i++) {
term = term * 10 + b; // 直接構造項:2 → 22 → 222 …
sum += term;
}
此法僅用整數乘法加法,效率更高且無 math.h 依賴。
將迴圈上限改為讀入的 n,即可支援任意項數。