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

C語言經典習題:求 s = a + aa + aaa + ... 累加和(鍵盤控制項數)

     編輯:關於C語言

題目描述

輸入數字 a 與項數 n,計算 s = a + aa + aaa + ... (n項)。例:a=2, n=5 → 2+22+222+2222+22222。

核心思路

每項由上一項 ×10 + a 得到:

tn = tn*10 + a  // 當前項
sn += tn        // 累加和

完整代碼

#include 
#include 

int main() {
    int a, n, count = 1;
    long int sn = 0, tn = 0;
    printf("please input a and n\n");
    scanf("%d,%d", &a, &n);
    printf("a=%d,n=%d\n", a, n);
    while (count <= n) {
        tn = tn*10 + a;  // 關鍵:tn = tn + a 錯誤!應為 tn*10 + a
        sn += tn;
        count++;
    }
    printf("a+aa+...=%ld\n", sn);
    getch();
    return 0;
}

關鍵修正

原文 tn=tn+a; a=a*10; 邏輯錯誤。正確遞推:

  • 第 1 項:tn = 0*10 + a = a
  • 第 2 項:tn = a*10 + a = aa
  • 第 3 項:tn = aa*10 + a = aaa

運行示例

VC6 調試通過截圖

輸入 2,5 → 輸出 a+aa+...=24690(驗證:2+22+222+2222+22222=24690)

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