ACM 入門 1177
阿新 • • 發佈:2018-10-31
題目描述
求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; }