1 ~ 9 有 9 個一位數,10 ~ 99 有 90 個二位數,100 ~ 999 有 900 個三位數,1000~ 2016 有 1017 個四位數
全部一共是 9 x 1 + 90 x 2 + 900 x 3 + 1017 x 4 = 6957 位數,對 C 而言在全域宣告一個 char str [6960] 陣列絕對安全
至於放數字,就是一對一,給 str 一個索引 j ,j 從 0 開始,每放一個數字就加一,放完後此數字就是 j 位數
然後用一個雙重迴圈,j 從當前位數遞減, i 從 0 遞增,依題目要求操作,最後 str [0] 就是答案
PS 相信 C,它不會 TLE 的,前題是程式碼有對
while(j>1)
{
i=0;
while(i<j-1)
{
str[i]+=str[i+1];
if(str[i]>=10)
str[i]-= 9;
i++;
}
j--;
}