最近,给小朋友们做了一道我认为很有意思的题。题目是这样的:
(1)请把十进制数71表示成三进制数
(2)在1~2019这2019个数十进制数中,把每个数都表示成三进制数时,请问一共有多少个数的三进制数表示的最后三位数字与71的三进制数表示的最后三位数字相同?
这个题虽然不太难,但解法却能反映出我们有没有对进制理解透彻。是仍然停留在十进制思维,还是已经把十进制仅仅作为N进制的一种,达到对进制驾轻就熟的水平了?
第一问:71=2×33+1×32+2×31+2, 表示成3进制数为2122,问题不大。我们经常教的是重复地除3取余数,然后将余数倒过来写就行。但更应该搞清楚这里面的原因,实际上就在于上面的表达式。
第二问:
解法1(十进制思维):
后三位数为122,最小的数即为122=17,第二个数为1122,即为17+27=34,第三个数为2122,即为17+27+27=71
所以从17开始,每隔27会有一个最后三位相同的数,共有(2019-17)÷27+1=75个。
这种做法是很容易被接受的一种,把不太熟悉的三进制数都转化为我们熟悉的十进制来求解。这也是我们解决问题的一种常用手法,即将不熟悉的未知问题划归转化为熟悉的已知问题予以解决。
解法2(三进制思维):
如果换个问题,比如十进制数1~58231里有多少个末三位为123的数?那可以这样:
123
1 123
2 123
......
9 123
10 123
......
58 123
不管末三位,只需要看前面有多少个数,即从0~58,共有59个数。
三进制数也一样,2019的三进制数表示为2202210, 去掉末三位数为2202。
所以1-2019末三位为122的数的三进制表示从小到大为:
122,1122,2122, 10122, 11122, 12122, 20122, …,2202122
不管末三位,总共有(2202)3+1=74+1=75个数。
0
推荐