一个小学奥数老师给我讲了一道小学奥数题,这是他在上课时遇到的:从 1 到 4000 中,各位数字之和能被 4 整除的有多少个?
注意,问题可能没有你想的那么简单,满足要求的数分布得并没有那么规则。 1 、 2 、 3 、 4 里有一个满足要求的数, 5 、 6 、 7 、 8 里也有一个满足要求的数,但是 9 、 10 、 11 、 12 里就没有了。
尽管如此,这个问题仍然有一个秒杀解。你能多快想到?
答案就是 1000 。首先, 0 和 4000 都是满足要求的数,因而我们不去看 1 到 4000 中有多少个满足要求的数,转而去看 0 到 3999 中有多少个满足要求的数,这对答案不会有影响。注意到,如果固定了末三位,比如说 618 ,那么在 0618 、 1618 、 2618 、 3618 这四个数中,有且仅有一个数满足,其各位数字之和能被 4 整除。考虑从 000 到 999 这 1000 个可能的末三位组合,每一个组合都唯一地对应了一个满足要求的四位数,因此问题的答案就是 1000 。
真正有趣的事情在后面呢。一个小朋友举手说:“老师,我明白了,按照这个道理,从 1 到 3000 里各位数字之和能被 3 整除的数也是 1000 个。”另一个小朋友说:“废话,各位数字之和能被 3 整除就表明整个数能被 3 整除,在 1 到 3000 里这样的数当然有 1000 个嘛!”全班哄堂大笑。
这。。。小学生NB啊。。
按道理说,从 1 到 10000 里各位数字之和能被 10 整除的数也是 1000 个?
搜肠刮肚不知说什么好……
这是小学奥数题???
一瞬间觉得,小学生好可怕!
这也太猛了吧
matrix去开辅导班了么
晕……第一反应是动规
小学生好聪明!
又是一条小学奥数题:
http://www.guokr.com/post/65920/
我跪了。。。
悲剧……我还在傻乎乎地拿着(1/2)n^2+(1/2)n mod4 呢……
可以用等概率分析吗?
看到的第一反应就是对应求集合元素数目
可不可以这样:如果一个数的末两位可以被4整除,那么这个数也可以被4整除(这个是一个定理,我从别的书上看来的)。
有了这个定理,我们只需要在0至99之间找出有多少个可以被4整除的数,乘以4就可以了。
貌似这个更合小学生胃口吧······
题目看错了
@Floor15
(100/4)*(4000/100)=25*40=1000(个)
一般小学生应该是这样做的。
这个能扩展么?比如1-5000里各位数之和能被5整除是不是也是1000个?
1-n*1000中各位数之和能被n整除的也是1000个?
好像有点道理。
@Floor16
“100/4″不是“100个数里面有多少个数可以被4整除的”的表达式吧······?
@Floor18就是的,每加上4还是4的倍数来的。
@15L 这个不是问的和能被4整除。。你这个是神马???
@Floor19、20
是的,你们是对的,我没看到那个“之和”······
我就奇怪,怎么我一直觉得有点不对头······
这是小学生的题目?!!!
太超班了吧······我被震精了!!!
跟今年某省的高中奥数竞赛里的一道题非常相似,但那题的答案貌似是2812?
小学生。我小学从来没学过奥数,题目都很有意思啊。好难T.T
相比之下,这道我一直以为是小学生思维的制高点的题目(http://www.matrix67.com/blog/archives/4485)简直弱爆了······
30秒
怎么感觉就是等概率事件,所以直接除以四就可以了?
看来我是错了。
第一反应也是动规OTZ。。。
总算进你博客了
最近总是被小学奥数坑……
如果固定了末三位,那么有且仅有一个数满足,其各位数字之和能被 4 整除
这是为什么?
000到999任意一个组合总会找到唯一数(前边补0 1或2或3),该数各位数和能被4整除
我觉得能被4整除的肯定能被2整除
1-4000里面能被2整除的有4000/2=2000个
这2000个数里面能再被2整除的有2000/2=1000个
所以1-4000里能被4整除的也是1000个
啊啊啊,被计算机惯坏了啊
python:
>>> len([ x for x in range(1, 4001) if not sum(map(int, str(x))) % 4])
1000
高级语言就是好,一行代码搞定,要是用C的话…
第一个小家伙有潜力,
第二个是蠢才!
@Floor15 是数字之和吧~不是被4整除,而是数字之和被4整除,比如1111 数字和为4,被4整除
呵呵,看来需要考公务员的人应该看看matrix大神的博客,考公务员经常出这种题目~
花了一分钟找到答案,再一想的确可以秒!
小学生。。。压力好大
……小学生会因为这些东西哄堂大笑吗= =
或者可以这样解释,0,1,2,3是整数对4的余数的所有可能,所以任何数加这四个余数,必有一个可以被整除。
那么此题可以随意扩展,1到5000各位数字之和被5整除的1000个,1到6000,1到7000,。。。。都是1000个。 或者1到40000,那就是10000个咯。
最后一个小学生好强大!
哎…mark
我也是看了答案才看懂题目的。
汗,理解力太低了。
以为12,16,20,24…满足题意的题都没看懂。
1111满足题意。 千位+百位+十位+个位 1+1+1+1=4 4能被4整除
大家都该懂了吧。
答案是不是漏掉了 0-999中间的满足条件的数字,答案是不是应该是1000+这部分的个数。好像是1000+200+20+2=1222个
不对,当我没说,嘿嘿
第一反应是首先满足能被2整除,然后再能被2整除1次,于是(4000/2)/2=1000?
第二个小朋友说错了么?
#include
void main()
{
int i,j,i1,i2,i3,i4;
for(i=1;i<=4000;i++)
{
i1=i/1000;
i2=i/100-10*i1;
i3=(i/10)%10;
i4=i%10;
j=i1+i2+i3+i4;
if(j%4==0)
printf(“%d “,i);
}
}
刚才那个是#include
void main()
{
int i,j,i1,i2,i3,i4,s=0;
for(i=1;i<=4000;i++)
{
i1=i/1000;
i2=i/100-10*i1;
i3=(i/10)%10;
i4=i%10;
j=i1+i2+i3+i4;
if(j%4==0)
s++;
}
printf(“s=%dn”,s);
}求满足条件的数,这个稍做改变就可以得到满足条件的个数了。
34楼才是秒杀解
34楼才是秒杀解
34楼才是秒杀解
无限扩充了,1-N里面各个位数加起来能被M整除的数的个数N/M。
54L 人家问的是各位数字之和,不是问的1-4000里有多少数能被4整除,╮(╯_╰)╭如果是1-4000里有多少数能被4整除,还需要拆分成2么,直接除以4取整不就完了。。
这题貌似是设计好的吧
这题是设计好的吧
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
if ((a+b+c+d)%4 == 0)
4000以内yi’gong能被4整除的数
0 4 8 13 17 22 26 31 35 39 40 44 48 53 57 62 66 71 75 79 80 84 88 93 97 103 107
112 116 121 125 129 130 134 138 143 147 152 156 161 165 169 170 174 178 183 187
192 196 202 206 211 215 219 220 224 228 233 237 242 246 251 255 259 260 264 268
273 277 282 286 291 295 299 301 305 309 310 314 318 323 327 332 336 341 345 349
350 354 358 363 367 372 376 381 385 389 390 394 398 400 404 408 413 417 422 426
431 435 439 440 444 448 453 457 462 466 471 475 479 480 484 488 493 497 503 507
512 516 521 525 529 530 534 538 543 547 552 556 561 565 569 570 574 578 583 587
592 596 602 606 611 615 619 620 624 628 633 637 642 646 651 655 659 660 664 668
673 677 682 686 691 695 699 701 705 709 710 714 718 723 727 732 736 741 745 749
750 754 758 763 767 772 776 781 785 789 790 794 798 800 804 808 813 817 822 826
831 835 839 840 844 848 853 857 862 866 871 875 879 880 884 888 893 897 903 907
912 916 921 925 929 930 934 938 943 947 952 956 961 965 969 970 974 978 983 987
992 996 1003 1007 1012 1016 1021 1025 1029 1030 1034 1038 1043 1047 1052 1056 10
61 1065 1069 1070 1074 1078 1083 1087 1092 1096 1102 1106 1111 1115 1119 1120 11
24 1128 1133 1137 1142 1146 1151 1155 1159 1160 1164 1168 1173 1177 1182 1186 11
91 1195 1199 1201 1205 1209 1210 1214 1218 1223 1227 1232 1236 1241 1245 1249 12
50 1254 1258 1263 1267 1272 1276 1281 1285 1289 1290 1294 1298 1300 1304 1308 13
13 1317 1322 1326 1331 1335 1339 1340 1344 1348 1353 1357 1362 1366 1371 1375 13
79 1380 1384 1388 1393 1397 1403 1407 1412 1416 1421 1425 1429 1430 1434 1438 14
43 1447 1452 1456 1461 1465 1469 1470 1474 1478 1483 1487 1492 1496 1502 1506 15
11 1515 1519 1520 1524 1528 1533 1537 1542 1546 1551 1555 1559 1560 1564 1568 15
73 1577 1582 1586 1591 1595 1599 1601 1605 1609 1610 1614 1618 1623 1627 1632 16
36 1641 1645 1649 1650 1654 1658 1663 1667 1672 1676 1681 1685 1689 1690 1694 16
98 1700 1704 1708 1713 1717 1722 1726 1731 1735 1739 1740 1744 1748 1753 1757 17
62 1766 1771 1775 1779 1780 1784 1788 1793 1797 1803 1807 1812 1816 1821 1825 18
29 1830 1834 1838 1843 1847 1852 1856 1861 1865 1869 1870 1874 1878 1883 1887 18
92 1896 1902 1906 1911 1915 1919 1920 1924 1928 1933 1937 1942 1946 1951 1955 19
59 1960 1964 1968 1973 1977 1982 1986 1991 1995 1999 2002 2006 2011 2015 2019 20
20 2024 2028 2033 2037 2042 2046 2051 2055 2059 2060 2064 2068 2073 2077 2082 20
86 2091 2095 2099 2101 2105 2109 2110 2114 2118 2123 2127 2132 2136 2141 2145 21
49 2150 2154 2158 2163 2167 2172 2176 2181 2185 2189 2190 2194 2198 2200 2204 22
08 2213 2217 2222 2226 2231 2235 2239 2240 2244 2248 2253 2257 2262 2266 2271 22
75 2279 2280 2284 2288 2293 2297 2303 2307 2312 2316 2321 2325 2329 2330 2334 23
38 2343 2347 2352 2356 2361 2365 2369 2370 2374 2378 2383 2387 2392 2396 2402 24
06 2411 2415 2419 2420 2424 2428 2433 2437 2442 2446 2451 2455 2459 2460 2464 24
68 2473 2477 2482 2486 2491 2495 2499 2501 2505 2509 2510 2514 2518 2523 2527 25
32 2536 2541 2545 2549 2550 2554 2558 2563 2567 2572 2576 2581 2585 2589 2590 25
94 2598 2600 2604 2608 2613 2617 2622 2626 2631 2635 2639 2640 2644 2648 2653 26
57 2662 2666 2671 2675 2679 2680 2684 2688 2693 2697 2703 2707 2712 2716 2721 27
25 2729 2730 2734 2738 2743 2747 2752 2756 2761 2765 2769 2770 2774 2778 2783 27
87 2792 2796 2802 2806 2811 2815 2819 2820 2824 2828 2833 2837 2842 2846 2851 28
55 2859 2860 2864 2868 2873 2877 2882 2886 2891 2895 2899 2901 2905 2909 2910 29
14 2918 2923 2927 2932 2936 2941 2945 2949 2950 2954 2958 2963 2967 2972 2976 29
81 2985 2989 2990 2994 2998 3001 3005 3009 3010 3014 3018 3023 3027 3032 3036 30
41 3045 3049 3050 3054 3058 3063 3067 3072 3076 3081 3085 3089 3090 3094 3098 31
00 3104 3108 3113 3117 3122 3126 3131 3135 3139 3140 3144 3148 3153 3157 3162 31
66 3171 3175 3179 3180 3184 3188 3193 3197 3203 3207 3212 3216 3221 3225 3229 32
30 3234 3238 3243 3247 3252 3256 3261 3265 3269 3270 3274 3278 3283 3287 3292 32
96 3302 3306 3311 3315 3319 3320 3324 3328 3333 3337 3342 3346 3351 3355 3359 33
60 3364 3368 3373 3377 3382 3386 3391 3395 3399 3401 3405 3409 3410 3414 3418 34
23 3427 3432 3436 3441 3445 3449 3450 3454 3458 3463 3467 3472 3476 3481 3485 34
89 3490 3494 3498 3500 3504 3508 3513 3517 3522 3526 3531 3535 3539 3540 3544 35
48 3553 3557 3562 3566 3571 3575 3579 3580 3584 3588 3593 3597 3603 3607 3612 36
16 3621 3625 3629 3630 3634 3638 3643 3647 3652 3656 3661 3665 3669 3670 3674 36
78 3683 3687 3692 3696 3702 3706 3711 3715 3719 3720 3724 3728 3733 3737 3742 37
46 3751 3755 3759 3760 3764 3768 3773 3777 3782 3786 3791 3795 3799 3801 3805 38
09 3810 3814 3818 3823 3827 3832 3836 3841 3845 3849 3850 3854 3858 3863 3867 38
72 3876 3881 3885 3889 3890 3894 3898 3900 3904 3908 3913 3917 3922 3926 3931 39
35 3939 3940 3944 3948 3953 3957 3962 3966 3971 3975 3979 3980 3984 3988 3993 39
97 4000
4000以内能被4整除的数一共有1001个
请按任意键继续. . .
C+直接秒杀……
……,其实……被4整除的条件就是末两位能被4整除
我想到的是首先算1到4000中被2整除的数,算出来有2000,这2000中再选被2整除的数,那么有1000。那么被4整除的就有1000个了:)
64楼:原题是 各位数字之和能被 4 整除,不是被4整除。这是有相当大的差别的。
顶34楼。
I’m not that mch off a online reader tto bee honeat buut your sites really nice, keep
it up! I’llgo aead and bookmark your site to come back in the
future. Alll the best