猫史档案馆


[S2~通天塔76解析!]

用户:秋葵秋葵查看:1 回复:1 评论:1 创建时间:2018-12-20T20:35:23


emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了

一天不见

相思甚久

题目1 HANOI塔

center_image

center_image

分析:

1.获取一个数据

注意点:

1:每次只能移动一个圆盘

2:圆盘可以插在任意一个塔座上

3:任何时刻都不能将一个较大的圆盘放在一个较小的圆盘上

如果输入为1,返回1

如果输入为2,返回3

如果输入为3,返回7

。。。。。。

如果输入n,返回n**2-1

代码解析:

#获取整形输入,打印2**n-1即可
print(2**int(input())-1)

emotion_编程猫_紧张emotion_编程猫_紧张emotion_编程猫_紧张

题目2 防序数

center_imagecenter_image

分析:

1.获取输入

2.遍历数值

3.判断相乘是否为输入值

4.打印

代码解析:

#获取整形输入
a=int(input())
#遍历数值(无需太大一半即可)
for i in range(11,int(a/2)+1):
    #如果前乘等于a
    if i*int(str(i)[::-1])==a:
        #打印
        print(int(str(i)),int(str(i)[::-1]))
        #退出循环
        break

emotion_编程猫_冷漠emotion_编程猫_冷漠emotion_编程猫_冷漠

题目3 花里胡哨根号2不断逼近法

center_imagecenter_image

分析:

如果输入1 返回3/2

如果输入2 返回7/5

如果输入3 返回17/12

如果输入4 返回41/29

如果输入5 返回99/70

。。。。。

我们会惊奇的发现

输入4的时候

前一个数字等于输入3的前一个数字的两倍+输入2的前一个数字

后一个数字等于输入3的后一个数字的两倍+输入2的后一个数字

以此类推

 

代码解析:

#获取输入
n=int(input())
#前数的递归函数
def first(n):
    if n==1:
        return 3
    elif n==2:
        return 7
    elif n==3:
        return 17
    #递归f(n-1)*2+first(n-2)
    return first(n-1)*2+first(n-2)
    
#后数的递归函数
def last(n):
    if n==1:
        return 2 
    elif n==2:
        return 5
    elif n==3:
        return 12
    #递归f(n-1)*2+f(n-2)
    return last(n-1)*2+last(n-2)
#打印精确度相加
print(str(first(n))+"/"+str(last(n)))

emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了

路漫漫其修远兮!

keep doing!

 

emotion_编程猫_搓头emotion_编程猫_搓头emotion_编程猫_搓头


回复

上一页1 页 / 共 1下一页
奇葩的气泡o_O奇葩的气泡o_O

emotion_编程猫_厉害了大佬

点赞0


评论