1. 程式人生 > >計算機考研複試真題 數字階梯求和

計算機考研複試真題 數字階梯求和

題目描述

給定a和n,計算a+aa+aaa+a...a(n個a)的和。

輸入描述:

測試資料有多組,輸入a,n(1<=a<=9,1<=n<=100)。

輸出描述:

對於每組輸入,請輸出結果。
示例1

輸入

1 10

輸出

1234567900




/*
解題思路:數目較大,強行相加可能會溢位。這類題大概有兩種思路:1.字串拼接 2.將位數存在數組裡或者用棧.
        具體思路:根據遞推式,知道每位都是a,且個位數n個,十位數n-1個,以此類推...  
                可先算個位,十位,...,先進個位最後輸出個位,正好滿足棧的思想,故分別將其入棧然後最後出棧。
*/ #include<iostream> #include<stack> using namespace std; int main(){ int a,n; while(cin>>a>>n){ stack<int>ans; int temp=0; //存放進位 for(int i=n;i>0;--i){ ans.push((i*a+temp)%10); //依次求個位 十位 百位 ... temp=(i*a+temp)/10
; //儲存進位 } if(temp!=0) cout<<temp; //輸出最後的進位 while(!ans.empty()){ cout<<ans.top(); ans.pop(); } cout<<endl; } return 0; }