1000到1999各个数的数字之和是多少?

问题描述:

1000到1999各个数的数字之和是多少?

C LANGUAGE:
SUM=0;
FOR(INT A=1000;A〈2000;A++)
{
SUM=SUM+A/1000+A/100%10+A%100/10+A%10;
}

(1000+1999)X1000/2=1499500

1499500算的是各个数的和 = 1000 + 1001 + 1002 + …… + 1999。
题目问的是各个数的数字之和 = (1 + 0 + 0 + 0) + (1 + 0 + 0) + 1) + (1 + 0 + 0 + 2) + …… + (1 + 9 + 9 + 9)
首位的1不管,考虑 000到 999 这一千个数。共有1000*3 = 3000 个数字。
数字0到9出现的次数相等,即各出现 3000÷10 = 300 次。
因此 000 到 999 的各个数数字之和 = (0 + 1 + 2 + 3 + …… + 9)×300 = 13500
再加上首位的1(1000个数共出现1000次)。
因此,1000到1999各个数的数字之和 = 13500 + 1000 = 14500

和是:1499500
方法:(1000+1999)×1000÷2=1499500——等差数列前N项和计算公式

1000*1000=1000000
1+2+3+……999=(1+999)+(2+998)+……(499+501)+500=499*1000+500=499500
1000000+499500=1499500