首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言入門

C語言求特殊數列和:a + aa + aaa + ... (n 位) 迭代累加法

     編輯:C 語言入門

題目

給定個位正整數 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 利用十進制位權構造下一項,無需字符串操作。
  • 輸入驗證確保 a、n 為個位正整數,避免溢出與邏輯錯誤。
  • 輸出格式化:迴圈打印每項,最後退格刪除多餘 + 。

總結

特殊數列求和通過迭代構造項 + 累加,避免了大整數或字符串運算。同理可解決 1 + 11 + 111、2 + 22 + 222 等變體,核心公式通用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved