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



一天不见
相思甚久
题目1 HANOI塔
分析:
1.获取一个数据
注意点:
1:每次只能移动一个圆盘
2:圆盘可以插在任意一个塔座上
3:任何时刻都不能将一个较大的圆盘放在一个较小的圆盘上
如果输入为1,返回1
如果输入为2,返回3
如果输入为3,返回7
。。。。。。
如果输入n,返回n**2-1
代码解析:
#获取整形输入,打印2**n-1即可
print(2**int(input())-1)



题目2 防序数
分析:
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



题目3 花里胡哨根号2不断逼近法
分析:
如果输入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)))



路漫漫其修远兮!
keep doing!


