对于一位数,从1到9各出现一次;两位数,各出现20次;三位数30次;四位数40次;五位数50次;所以从1到99999,这些数字各出现1+20+30+40+50=141次。从1到100000的全部整数的各个数位上的数字之和再相加结果是(1+2+3+.....+7+8+9)X141+1=45X141+1=6345+1=6346。
比较简便的算法:
考虑从00000到99999这100000个数
这100000个数,各位上共使用了 100000 * 5 = 500000 个数码,
其中数字0到9出现的次数均等,即都出现了 500000/10 = 50000 次。
因此从00000到99999,所有数位上的数字之和
= (0+1+2+3+……+9)× 50000
= 45× 50000
= 2250000
则从00000到100000,须再加上100000的各个数字,因此总的数字和
= 2250000 + 1 + 0*5
= 2250001
在前面加一个0,然后是0和99999一起,1和99998这样类似的加下去,就一共有50000组,每组加起来都等于45,所以最后答案是45*50000再加个1 等于2250001
(10+99990)*9999*9/2+(1+9)*9/2*10000=4.5*10^9
哎,十进制坑爹啊。。。不是太确定啊。。。要是不对的话希望楼主别骂我
这应该是最简便的