99999各个数位上数字之和为45,从1到100000的全部整数的各个数位上的数字之和再相加结果是多少?

问题描述:

99999各个数位上数字之和为45,从1到100000的全部整数的各个数位上的数字之和再相加结果是多少?
我的算法是:
50000和100000的和为6
10000和90000数位数字之和为10,…到40000和60000,总共有10*4
1000和99000数位数字之和为19,……到49000和51000,总共有19*(49-4)
100和99900数位数字之和为28,200和99800……到49900和50100,总共28*(499-49)
10和99990数位数字之和为37,20和99980……到49990和50010,总共37*(4999-499)
1和99999数位数字之和是46,2和99998,……到49999和50001,总共有46*(49999-4999)
所以结果=46*45000+37*4500+28*450+19*45+10*4+6=2250001
改了很多次才改到最后的结果,并且确定这为标准答案,不过不知道还有没有更简便的方法,麻烦各位大虾多多指教,3Q!

比较简便的算法:考虑从00000到99999这100000个数这100000个数,各位上共使用了 100000 * 5 = 500000 个数码,其中数字0到9出现的次数均等,即都出现了 500000/10 = 50000 次.因此从00000到99999,所有数位上的数字之和=...