python练习:1.打印n个正整数 2.计算一元多项式

最近开始看数据结构与算法,在书的开头有几个简单的示例,当作练手用python实现下。

编写一个函数,实现传入正整数为n的参数,打印从1到n的全部正整数
1.循环实现

def print_n(n:int):
    for i in range(1,n+1):
        print(i)

2.递归实现

def print_n2(n:int):
    if n > 1:
        print_n2(n-1)
    print(n)

注意:由于上述函数未使用return,即无返回值,当使用print(pritn_n(n))调用时,会多打印一个None

当传入的参数n足够大时,print_n2函数会停止运行

定义一个函数,求一元多项式在点x处的值,多项式的阶数为n,项数为n+1,系数存在列表a中
1.直接累加求和

def f(n:int,a:list,x:float):
    the_sum = a[0]
    for i in range(1,n+1):
        the_sum += a[i] * pow(x,i)
    return the_sum       

2.秦九韶算法(不断提取公因式,来减少乘法运算次数)
计算时,应从内向外计算

def f2(n:int,a:list,x:float):
    the_sum = a[n]
    # 列表a的长度为n,最后一个元素的索引为n-1
    for i in range(n,0,-1):
        the_sum = the_sum * x + a[i-1]
    return the_sum   

你可能感兴趣的:(数据结构与算法,python基础练习,打印n个正整数,计算一元多项式)