- 主题:五年级数学竞赛题 求解答过程
继续你的思路,
用A表示四位数abcd
因为 20A % 99 = 2a+20b+2c+20d % 99
所以有 (20A + e) % 99 = 0
问题变成:对每个e,寻找四位数A,让 20A % 99 = (99-e) % 99
把从1000到9999的所有9000个四位数A按从小到大排列,计算A % 99,结果是:
10 11 ... 98 0 # 1 2 ... 98 0 # ... # 1 2 ... 98 0 #
用#分隔成组。一共91个组。其中第一组有90个数,后面是90个完整组(每组99个数)
对完整组,20A % 99的结果集必定是 0-98,所以里面有且仅有1个A符合要求
第一组相比完整组缺了9个数,它们对应的 20A % 99的结果是:
20 40 60 80 1 21 41 61 81
对每个e (0<=e<=9)
99-e % 99的结果集是:0, 90-98
正好避开了第一组缺少的9个结果,也就是说第一组和其它90个完整组一样,也是有且仅有1个A符合要求
所以各组都是刚好有1个四位数A满足要求,91个组共91个
e一共有10种,所以合计就是91*10个
【 在 forker 的大作中提到: 】
: 感觉换成 A = a*(10^8 - 1 + 1) + (10b+c)*(10^6 -1 + 1) + (10d + e)*(9999 + 1) + (10d +c)*(99 + 1) + 10b + a
: 这样等价为 2a+2c+20b+20d+e能被99整除对小学生而言工作量小点
--
修改:Group FROM 222.128.31.*
FROM 222.128.31.*
思路是对的,表述上有些不对,需要读的人自己补全
他想说的是四位数有10000种,按99个一组连续分,可以分成101组还剩一个。所以对每个e,肯定能找到101个相匹配的四位数。这是10*101的由来
但为什么不是102?
不管哪种方法,包括双切法,都需要处理这种边界处的细节问题,要说清晰了就得多写好多
但别人已经给指了方向,做题的人自己补全吧。。。
【 在 investar 的大作中提到: 】
: 是的,他这个思路不对
: 比如1782=99*18,是99的倍数,
: 但是把中间数字取2,前面四位镜像,得到287121782,就不是99的倍数
: ...................
--
修改:Group FROM 222.128.31.*
FROM 222.128.31.*
E有10种,0-9
BA有90种,因为A>0
合起来就是90*10种
对任一种BA、E的组合,DC有99个连续数可选,其中必定是有且只有一个可以凑成整除
所以是90*10*1种
他的解答里面,需要写详细的是这一步:DC=0,E可以为0-9,对应BA;10个
对每个E,只有90个BA可以选,得说明为什么一定可以从中找到与1个凑成整除,这样才能得到10*1
【 在 kakapo7 的大作中提到: 】
: 你这一步:
: DC<>0,BA和E可以取值,情况有
: 9*10*10=900
: ...................
--
修改:Group FROM 222.128.31.*
FROM 222.128.31.*
dc=00/99的时候,e的10种取法都可以唯一确定ba
就是这地方要费点口舌
【 在 frostyblade 的大作中提到: 】
: 复杂了
: 这题以前发过,我写过我的做法
: 先把abcdedcba变成ebadcdcba,对99的整除性不变,然后用99整除性质就只要
: ...................
--
FROM 222.128.31.*