编程之美:第四章 数字之趣 4.10数字哑谜和回文

/*
数字哑谜和回文:
1神奇的9位数。能不能找出符合如下条件的9位数:
这个数包括了1~9这9个数字;
这个9位数的前n位都能被n整除,若这个数表示为abcdefghi,则ab可以被2整除,abc可以被3整除......abcdefghi可以被9整除
2有这样一个乘法算式:
人过大佛寺*我=寺佛大过人
这里面每一个字都代表着一个数字,并且不同的字代表的数字不同,你能把这些数字都找出来吗?


分析:
问题1的解法1:
假设这个9位数是abcdefghi,,诶个字符对应1~9之间的数。可以考虑剪枝来优化性能。
剪枝=避开死胡同,把搜索比作遍历一棵树,那么剪枝就是讲数中的一些不能到达的枝条剪掉。
比如循环到b等于奇数时,ab必须被2整除,b必须为偶数。


问题1的解法2:
试一试用逻辑推理的办法来求解这个问题,假设每个字符目前都可以对应1~9之间的任何数字。
a    1 2 3 4 5 6 7 8 9
b    1 2 3 4 5 6 7 8 9
c    1 2 3 4 5 6 7 8 9
d    1 2 3 4 5 6 7 8 9
e    1 2 3 4 5 6 7 8 9
f    1 2 3 4 5 6 7 8 9
g    1 2 3 4 5 6 7 8 9
h    1 2 3 4 5 6 7 8 9
i    1 2 3 4 5 6 7 8 9
把整除的条件列出来,
a被1整除,任何数都满足这个条件,
b为0,2,4,6,8
abc必须被3整除,那么a+b+c=3*k
abcd必须被4整除,那么d必须为2,4,6,8,cd被4整除
abcde被5整除,e为5(0为什么不可能,因为是1~9,没有0)
abcdef被6整除,f = 2,4,6,8,a+b+c+d+e+f=3*k,不易想到
abcdefg被7整除,abcd -efg能被7整除(考虑到7能整除1001),不易想到
abcdefgh被8整除,h = 2,4,6,8,fgh能被8整除,不易想到
abcdefghi被9整除,a+b+c+d+e+f+g+h+i=9*k,不易想到


范围如下:
a 1 3 7 9
b 2 4 6 8
c 1 3 7 9
d 2 4 6 8
e 5
f 2 4 6 8
g 1 3 7 9
h 2 4 6 8
i 1 3 7 9


下面条件:
a+b+c被3整除
cd被4整除
d+e&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值