2、用递归求1~n的和。
- def fib(n):
- if n==0 or n==1:
- return 1
- else:
- return fib(n-1)+fib(n-2)
- n=int(input())
- print(fib(n))
- def s(n):
- if n==1:
- return 1
- else:
- return n+s(n-1)
- n=int(input())
- print(s(n))
例题:
1、输入一个整数n,绘制一个二叉树,最下方为最大长度n,向上一次递减15,最上层长度不小于10,当长度为小于40的时候时候绿色,否则是红色。
2、递归求最大公约数。
- # 绘制分型树,末梢的树枝的颜色不同
- import turtle
- def s(sz):
- if sz> 5: #设置边界条件
- if sz < 40:
- turtle.color('green')
- else:
- turtle.color('red')
- turtle.forward(sz)
- turtle.right(25) #向右绘制一个低阶二叉树
- s(sz-15)
- turtle.left(50) #向左绘制一个低阶二叉树
- s(sz-15)
- if sz < 40:
- turtle.color('green')
- else:
- turtle.color('red')
- turtle.right(25)
- turtle.backward(sz)
- turtle.delay(100)
- turtle.left(90)
- turtle.penup()
- turtle.backward(150)
- turtle.pendown()
- turtle.color('red')
- turtle.speed(0)
- s(100)
- def gcd(m,n):
- return m if n==0 else gcd(n,m%n)
- m=int(input())
- n=int(input())
- print(gcd(m,n))