題目:求?的值?
一、做這個題我們其實可以直接一個for求解:
a,aa,aaa...我們很容易知道它們后一項與前一項的關系就是;
public static void Sum(int m,int n){long sum = 0L;long curAn = 0;for (int i = 0; i < n; i++){curAn = m+ 10* curAn;// An=m+10*A(n-1)sum+= curAn;// 求和}Console.WriteLine(sum);}
二、其實也可以用高中學的數列來做
現已知,下面我們具體來求解
:
第一步轉換:
;
第二步去括號求解K:
9K=m
解得K=?
第三步,將K=?帶入?
? 式子就可變成:
??
第四步,求解:
?
不難發現數列{?} 以
?為首項,q=10為公比的等比數列;
那么?從而得到:
???得解!
接下來我們利用數學歸納法求解?:
①式子:
②式子:
我們知道q=10,于是得到③式子:
③-①:
?;
所以:
用代碼表示:
public static void Sum2(int m, int n){double result = 10 / (double)81 * (Math.Pow(10, n) - 1) * m - n / (double)9;long sum = (long)result;Console.WriteLine(sum);}
總結:方法二要求數據功底較深,用到高中數學歸納法求解求和公式;方法一只需要每次迭代當前?,再求和。