1、科赫雪花(点击链接查看scratch绘制科赫雪花),编程输入整数n,绘制n阶科赫雪花。
习题解析:由scratch科赫雪花很轻易推到出python的表达式。
- #科赫雪花
- import turtle
- t=turtle.Pen()
- def khline(n,l=100):
- if n==1:
- t.forward(l)
- else:
- khline(n-1,l/3)
- t.left(60)
- khline(n-1,l/3)
- t.right(120)
- khline(n-1,l/3)
- t.left(60)
- khline(n-1,l/3)
- def snow(n):
- for i in range(3):
- khline(n,200)
- turtle.right(120)
- n=int(input())
- snow(n)
2、已知 f(x,n)= ,输入实数x和整数n的值,计算f(x,n)的值。
习题解析:明显看出,n阶函数和n-1阶函数除了阶数不一样,其他都一样,明显的递归问题。找到递归函数和边界条件就可以解决。
- import math
- def f(x,n):
- if n==1:
- return math.sqrt(x+1)
- else:
- return math.sqrt(n+f(x,n-1))
- x=float(input())
- n=int(input())
- print(f(x,n))
例题:
1、输入一个实数n,绘制一个半径为n的实心圆。要求速度极快,最后隐藏海龟。
- import turtle
- t=turtle.Pen()
- t.speed(0) #绘制速度极快
- def cir(n):
- t.color("red")
- t.begin_fill()
- t.circle(n)
- t.end_fill()
- n=float(input())
- cir(n)
- t.hideturtle() #隐藏海龟
2、找出0-1000所有的质数,并输出出来,以空格隔开。
例题解析:生成2-1000的数列,从第一位开始作为除数,后面的如果是倍数就筛除。到最后一位,剩下的就是质数。
- nums=list(range(2,1000))
- index=0
- while index<998:
- if nums[index]==0:
- index+=1
- continue
- a=nums[index]
- for i in range(0,998):
- if nums[i]!=0 and nums[i]!=a and nums[i]%a==0:
- nums[i]=0
- index+=1
- for i in nums:
- if i!=0:
- print(i,end=" ")