数字哑谜和回文

1.有这样的乘法算式:

  人过大佛寺 * 我 = 寺佛大过人

 每一个字都代表一个数字,不同的字表示不同的数字,找出这些数字。

  解法:使用暴力搜索的方法,(因为这两天再看Python,所以刚好用Python写了下这个简单的程序):

  找到的是 21978, 4

 1 def checkN(n):
 2     nums = []
 3     while n > 0:
 4         cur = n % 10
 5         if cur in nums:
 6             return True
 7         else:
 8             nums.append(cur)
 9         n /= 10
10     return False
11 
12 def checkC(n, c):
13     while n > 0:
14         if c == n % 10:
15             return True
16         n /= 10
17     return False
18 
19 def is_right(p, q):
20     p_str = str(p)
21  
22     q_list = list(str(q))
23     q_list.reverse()
24     q_str = ''.join(q_list)
25     if(p_str == q_str):
26         return True
27     else:
28         return False
29 
30 for number in range(10000, 99999):
31  #   print cur          #用于测试的行
32     if(checkN(number)):
33         continue
34     for c in range(2, 10):
35         if checkC(number, c) :
36             continue
37         temp = number * c
38         if is_right(number, temp):
39             print number, c
40         temp = list(str(temp)).reverse()
41         if temp == str(number):
42             print number, c

2.已知回文数就是类似于11,22,33,……99,三位数中,101,111,121,……222,……999。那么N位数总共有多少个回文数。

  考虑前 upper(N/2)位,(upper表示对N/2向上取整)前N/2位数字决定了整个数字取值。第一个数字取1~9,有9种,后面每个都可以取0~9,有10种,所以

  共有   9 * 10 upper(N/2) 种取法。

3. 判断 (he)2 = she。各个数字

  252 = 625

转载于:https://www.cnblogs.com/dandingyy/archive/2012/09/17/2689638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值