1. 程式人生 > >ACM 入門 1177

ACM 入門 1177

題目描述
求a+aa+aaa+…+aa…a(n個a)的和,其中a是一個1~9之間的數字,
由鍵盤輸出,n表示a的位數,由鍵盤輸出。
如: 2+22+222+2222+22222 ,此時a=2,n=5.
輸入 輸出a和n的值,以空格分隔。
輸出 輸出a+aa+aaa+…+aa…a(n個a)的和,末尾換行。
樣例輸入 2 5
樣例輸出 24690

做這道題我們先理清楚其思路,這是幾個比較簡單但又特殊的累加計算
1 先拿2+22+…+22222,作例子,a值為2,迴圈5次
那這得運用到for迴圈語句,for(i=0;i<=n-1;i++)
2 那 2+ 22+ 222+ 2222+ 22222如何表示呢
可以看成2+(20+2)+(220+2)+(2220+2)+(22220+2)
由此推斷得出下一個算術=上一個乘數*10+a值,這也就可以用Xn=Xn-1+a表示
3 最後再將其相加,則是SUMn=Xn-1+Xn.
知道思路就可以開始敲程式碼了

#include<stdio.h>
#include<math.h>
int main()
{
    int a,n,i=0,x=0,sum=0;   //定義a,n正整型變數取值,i迴圈變數,x變數用來計算出每個單數字的值,sum用來計算和
    scanf("%d%d",&a,&n); 
    for(i=0;i<=n-1;i++)      //迴圈5次
    { 
        x=10*x+a;            //計算出每個單個的數字值
        sum=x+sum;           //求和
    }
    printf("%d",sum);        //輸出
    return 0;
}