求一至一千包含有“7”的整数和

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:06:42

是啊,一个幼稚的错误 ,可惜你也是同样的错啊,呵呵

你这样考虑
所有百位是7的,有100个
“7**”的: 700+...+799 = (700+799)*100/2 = 74950
所有百位不是7的 ,十位是7的:有90个
百位的和=10*(0+100+...+600+800+900) =38000
十位和各位的和 9*(70+71+...+79) =9*(70+79)*10/2= 6705
所有百位十位不为7,个位为7的:有81个
百位的和=9*(0+100+...+600+800+900) = 34200
十位的和=9*(0+10+...+60+80+90) =3420
个位的和=81*7=567

所以总和为=74950+38000+6705+34200+3420+567
=157842

真TMD累

你们穷举法都有些烦琐,
不如用逆向思维,从反而考虑.

考察1~1000 中不含7的全部整数的和

设一个数是:abc,三位数.1000不含7,放在一边不用考虑.
a,b,c的取值都是0,1,2,3,4,5,6,8,9.共9种可能的情况.
abc=100a+10b+c.
a,b,c三个组合起来,共有多少种情况呢? 是9^3个.

再细分一下,想想,a=1的情况,共有多少呢?
是9^2个.因为b,c各有9种可能,乘法原理,就是9^2.

这说明百位上1共出现了9^2次.
类似地,在000~999不含7的整数中,百位上0,1,...6,8,9都各出现了9^2次.
百位上的和就可以算出来了.
B=(1+2+...+6+8+9)*100*9^2=38*100*9^2

与上面的分析完全类似地,
在000~999不含7的整数中,十位上0,1,...6,8,9都各出现了9^2次.
十位上的和也就可以算出来了.
S=(1+2+...+6+8+9)*10*9^2=38