计算:1、2、3、.300,这个自然数各个数位上的数字之和.
问题描述:
计算:1、2、3、.300,这个自然数各个数位上的数字之和.
答
题:把自然数1到300一个个地排下去:123?299300这个数的各位上的各个数字和是多少?
等效题:
自然数1,2,...,300,这些自然数各数位上数字的总和?
先简单的排一下,找出规律.在高位添加数字0,及在前面添加一个数000,不影响计算结果
000 ...009
---
010 ...019
--- --- --- .
090 ...099
--- --- --- --- --- ------ --- ---
100 .........199
--- --- --- --- --- ------ --- ---
200 .........299
--- --- --- --- --- ------ --- ---
300
容易看出,个位从0~9,递进循环;
(递进,即由小到大,直到被截止;循环,即周期性变化);
十位为十个0,十个1,……,十个9,递进循环;(***)
百位,则是一百个0,一百个1,...递进循环
到截止到299时,
个位 9 安放在打头的高位数 00~29上循环,共30次;
十位放在 打头的高位数0,1,2上按 (***) 十个十个的循环,共 3次;
百位,则是百个0,百个1,百个 2.
最后再加上 300的数字和.
于是数字总和为:
((0+1+...+9)*30 + (0+1+...+9)*10 *3 +(0+1+2)*100 +3) =
=(45*30*2+303)= 3003
用excel也可以生成这个数表,然后分列,再对区域内的数字求和.
我用excel验证了,是正确的.