鱼C论坛

 找回密码
 立即注册
查看: 4194|回复: 12

题目38:最大的能够通过一个固定数与1,2,3,...相乘得到的1到9pandigital数是多少?

[复制链接]
发表于 2017-8-13 12:00:58 | 显示全部楼层
  1. from time import time
  2. start = time()

  3. def isPandingital(n):
  4.     i =1
  5.     str_1 = ''
  6.     tag = True
  7.     while i<10:
  8.         str_1 = str_1+str(n*i)
  9.         i = i + 1
  10.         if '0' not in str_1:
  11.             if  len(set(str_1))==9 and len(str_1)==9:
  12.                    return True
  13.                    break
  14.     return False

  15. def getPandingital(n):
  16.     i = 1
  17.     str_1 = ''
  18.     tag = True
  19.     while i < 10:
  20.         str_1 = str_1+str(n * i)
  21.         i = i + 1
  22.         if '0' not in str_1:
  23.             if len(set(str_1)) == 9 and len(str_1) == 9:
  24.                 return int(str_1)

  25. num = 10000    #n需要大于1,所以需要两个数组合,num不会超过4位数,为保险,可以取num = 100000
  26. while num > 0:
  27.    if  not isPandingital(num):
  28.        num -=1
  29.    else:
  30.        print(num)
  31.        print(getPandingital(num))
  32.        break

  33. print("Program running cost %4f secs!" % (time() - start))
复制代码


9327
932718654
Program running cost 0.005000 secs!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-10 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表