搜索
查看: 986|回复: 5
打印 上一主题 下一主题

小学三年级的题

[复制链接]
楼主
发表于 2014-2-10 13:59:18 | 显示全部楼层
本帖最后由 rosynirvana 于 2014-2-14 01:32 编辑

2楼的程序看上去没问题,可惜出题人有点……

首先注意到末位的
e * c % 10 == e
这个可以手动穷举出所有可能性,写程序也很简单(不过既然是小学数学题应该是让手动穷举的)

我们首先来假设不同的汉字代表不同的数字(一般的题目都有这种限制),注意到在这个假设下,c不能是1,否则得不到一个6位数;
然后e不能是0,否则c=e=0

这里写程序就是
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.         int a,b,c,d,e;
  6.     for(a=0;a<10;a++)
  7.         for(b=0;b<10;b++)
  8.             if(a * b % 10 == a && a != b && b != 1 && a != 0)
  9.                 printf("%d %d\n", a, b);
  10.     system("pause");
  11.     return 0;
  12. }
复制代码

这样子剩下的数字对只有
e c
2 6
4 6
5 3
5 7
5 9
8 6

那么就可以根据111111*e的值和c的值反推出所有数字了
得到的结果是
37037
74074
185185
79365
61728+(1/3)
148148
第5组不是整数,2和6大于10万,第1组有重复数字,第3组看上去似乎是正确的但是c的值冲突了

所以建立在这个假设下面是无解的
如果假设可以有重复的数字,那这个问题就没意思了,a=b=c=d=e=0显然是符合的,小学数学不会问什么非平凡解吧=,=
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表