1到4444有多少个4

来源:百度知道 编辑:UC知道 时间:2024/06/10 19:44:24
各位大哥大姐帮我解决一下我头快爆炸了。。谢谢`

简单:
只要算出4444个数里有几个数不含4就可以了
过程:
4444,
个位上可取的数只有0、1、2、3,共4个;
十位上可取的数只有0、1、2、3、5、6、7、8、9,共9个;
百位上可取的数只有0、1、2、3、5、6、7、8、9,共9个;
千位上可取的数只有0、1、2、3,共4个。
那么1-4444里不含4的数有4×9×9×4=1296
所以:1到4444有4444-1296=3148(个)4。

都疯了,直接用4444/4=1111(个)

还有一个角度:1到4444里只有一个4。不信,你数1,2,3,4....

正确答案:一共有1780个“4”(编程数出来的)

如果4444理解为4个4的话。。。
先数个位上有多少个4,即个位上有4的数的个数。如4,14,24...4444,共有445个4(还没有算十位上的4);同理十位上的4有44×10+5个;百位有4×100+45个,千位有4000-4444即445个。
总计445×4=1780个
同楼上编程数出来的,总不会有错 - -#

public class TestHowMany4 {
public static void main(String[] args) {
int num = 0;//总个数
int a = 0;//个位数
int b = 0;//十位数
int c = 0;//百位数
int d = 0;//千位数
for (int n = 0; n <= 4444; ++n) {
a = n / 1 % 10;
b = n / 10 % 10;
c = n / 100 % 10;
d = n / 1000 % 10;
if (a == 4) {
++num;
}
if (b == 4) {
++num;
}
if (c == 4) {
++num;
}
if (d == 4) {
++num;