Python作业2

Python0006爬楼梯

题目描述

 假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。

【源代码程序】

def Pa(n):
    if n == 1:
        return 1
    elif n == 2:
        return 2
    elif n == 3:
        return 4
    else:
        m=Pa(n-1)+Pa(n-2)+Pa(n-3)           #递归实现

        return m
print(Pa(int(input("楼梯级数:"))))
View Code

Python0007杨辉三角形

题目描述

输出n0<n)行杨辉三角形,n由用户输入。

 

【源代码程序】

def yang_hui(x):
 triangle = [[1], [1, 1]] # 初始化杨辉三角
 n = 3 # 从第三行开始计数,逐行添加
 while n <= x:
  for i in range(0, n-1):
   if i == 0:
    # 添加初始列表[1,1],杨辉三角每行的首位和末位必为1
    triangle.append([1, 1])
   else:
    # 逐位计算,并插入初始列表中
    triangle[n-1].insert(i, triangle[n - 2][i] + triangle[n - 2][i - 1])
  n += 1
 return triangle
x=int(input())
yang_hui(x)
triangle = yang_hui(x)

# 遍历结果,逐行打印
for i in range(x):
    print(' '.join(str(triangle[i])).center(100))  # 转为str,居中显示
View Code

 

Python0008筛法求素数

题目描述

用户输入整数nm1<n<m<1000),应用筛法求[n,m]范围内的所有素数。

【源代码程序】

from turtle import width


def sushu(x):
    flag=0
    y=int(x**0.5)
    for z in range(2,y+1):
        res=x%z
        if res==0:
            flag=1
    if flag==0:
        return x
lis1=[]
def sushu2(a,b):
    for c in range(a,b+1):
        if sushu(c):
            lis1.append(sushu(c))
q,w=input().split(" ")
q=int(q)
w=int(w)
sushu2(q,w)
flag=0
for d in lis1:
    flag+=1

    print(f" {d}",end="   ")
    # str(d).rjust(width[5, ])
    if flag%5==0 :
        print()
print()
View Code

 

Python0009查找鞍点

题目描述

对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)

提示:鞍点的特点:列上最小,行上最大。

【源代码程序】

import numpy as np
num = [int(n) for n in input('').split()]
num = np.array(num,dtype=int)
num = num.reshape(5,5)
for i in range(0,5):
  for j in range(0,5):
     if (num[i][j] == min(num[:,j]) & num[i][j] == max(num[i,:])):
        print("[%s,%s,%s]"%(i+1,j+1,num[i][j]))
View Code

 

Python0010】正整数的因子展开式

题目描述

编写程序,输出一个给定正整数xx>1的质因子展开式。

【源代码程序】

a=int(input())
b=str(a)
num=[]
i=1
while i <= a:
    if a%i == 0:
        a = a/i
        num.append(i)

        i = 1
    i+=1
b+='='+str(num[1])
for j in num[2:]:
    b+="*"+str(j)
print(b)
View Code

 

Python0011牛顿迭代法

题目描述

编写程序,使用牛顿迭代法求方程x附近的一个实根。

【源代码程序】

from math import fabs

def niuudun(a,b,c,d,e):
    x1=e
    # 迭代:
    while True:
        x=x1
        f = ((a * x + b) * x + c) * x + d #原函数
        f1 = (3 * a * x + 2 * b) * x + c #求导的函数
        x1 = x - f / f1
        if (fabs(x1 - x) <= 0.00000001):
            return x1
num = [float(n) for n in input('').split()]
print(("%0.2f")%(niuudun(num[0],num[1],num[2],num[3],num[4])))
View Code

 

posted @ 2022-03-19 22:58  大雄的脑袋  阅读(125)  评论(0编辑  收藏  举报