美文网首页新手练习100题
Python挑战100题(34~36)

Python挑战100题(34~36)

作者: YoYoYoo | 来源:发表于2019-08-16 11:30 被阅读0次

34、汉诺塔

题目:
在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。

现在请你计算出起始有n个金片的汉诺塔金片全部移动到另外一个针上时需要移动的最少步数是多少?
输入
每组测试数据是一个整数n,表示起始时金片的个数。(0<n<=100)
输出
输出把金片起始针上全部移动到另外一个针上需要移动的最少步数。
参考答案:

def f(n):
    if n==1:
        return 1
    else:
        return 2*f(n-1)+1

print(f(n))

35、回文素数

题目:
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。给你一个正整数n(1 <= n <= 100), 请你输出从小到大排列的的第n个回文素数。

例如:
n = 1, 则输出 2
n = 5, 则输出 11
参考答案:

def isPrime(n):  # 先判断一个数是否是素数
    if n <= 1:
        return False
    i =2
    while i*i <= n:
        if n % i == 0:
            return False
        i += 1

    return True
L = [2]
for i in range(2,100000):
    if i % 2 and str(i) == str(i)[::-1]: # 这里i % 2 == 1
        if isPrime(i):
            L.append(i)

n=5
print(L[n-1])

36、反素数

题目:
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:17和71都是素数,所以,17和71都是反素数。

给你一个正整数n(1 <= n <= 100), 请你输出从小到大排列的的第n个反素数。

例如:
n = 1, 则输出 13
n = 5, 则输出 71
参考答案(新手):

def isPrime(n):  # 先判断一个数是否是素数
    if n <= 1:
        return False
    i =2
    while i*i <= n:
        if n % i == 0:
            return False
        i += 1

    return True

L = []
for i in range(10,100):
    if i % 2==1:
        if isPrime(i):
            L.append(i)
N = []
for j in L:
    for f in L:
        if str(j) != str(f) and str(j) == str(f)[::-1]:
            N.append(j)

n=1
print(N[n-1])

相关文章

  • Python挑战100题(34~36)

    34、汉诺塔 题目:在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝...

  • Python挑战100题(31~33)

    31、取石子问题 题目:有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法...

  • Python挑战100题(37~40)

    37、回文数 Ⅰ 题目:若一个数(首位不为0)从左到右读与从右到左读都是一样,这个数就叫做回文数,例如12521就...

  • Python挑战100题(21~26)

    21、山峰的个数 题目:十一假期,小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示...

  • Python挑战100题(27~30)

    27、分拆素数和 题目:把一个偶数拆成两个不同素数的和,有几种拆法呢?现在来考虑考虑这个问题,给你一个不超过100...

  • Python挑战100题(14~20)

    14、信息加密 题目:给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中...

  • Python挑战100题(11~13)

    11、人民币打印金额 题目:银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完...

  • Python挑战100题(1~10)

    1、字符串逆序 题目:给你一个字符串 a, 请你输出逆序之后的a。例如:a=‘xydz’则输出:zdyx答:最简单...

  • 隔离期倒计时,成长新技①

    36/100:这是100天日更挑战计划的第36篇原创! 【01】成长新技 新的一周开始了...

  • 2020-03-21

    《孩子挑战》 第34章 降低‘’坏‘’习惯的重要性 第35章 一起享受乐趣 第36章 电视挑战

网友评论

    本文标题:Python挑战100题(34~36)

    本文链接:https://www.haomeiwen.com/subject/fcdajctx.html