问题求解——for 循环

以def开头的,叫做函数,可以去搜教程,这样下节课就不用听了

枚举因数,以及素数那关,有结论 (看到试除法就可以) 是枚举到$ \sqrt{n} $就可以算完所有因子

第1关 打印几何图形

n = int(input())
########## Begin ##########
tol=n*2-1
for i in range(1,n+1):
    now=i*2-1
    k=int((tol-now)/2)
    for i in range(0,k):
        print(" ",end="")
    for i in range(0,now):
        print("*",end="")
    for i in range(0,k):
        print(" ",end="")
    print("")
########## End ##########

第2关 用物理知识煮鸡蛋

import math
########## Begin ##########
def run(x):
    return 437.3*((math.log2((100-x)/35)/math.log2(math.e)))
for i in range(-10,40,5):
    print("%d\t%d" % (i,run(i)))
########## End ##########

第3关 自然常数

n = int(input())
########## Begin ##########
def fac(i):
    if i==0:
        return 1
    ans=1
    for i in range(1,i+1):
        ans=ans*i
    return ans
e=0
for i in range(0,n+1):
    e=e+1/fac(i)
########## End ##########
print('%.14f' % e)

第4关 泰勒级数

import math
n = int(input())
x = eval(input())   #输入时采用度数,如30表示30°
x = math.radians(x) #将度转换为弧度,如30°转换为π/6,泰勒展开式中的x要使用弧度
########## Begin ##########
def fun():
    ans=0
    for i in range(0,n+1):
        ans=ans+((-1)**(i))*(x**(i*2+1))/math.factorial(2*i+1)
    return ans
if n<0:
    print("输入错误")
else:
    print("%.8f" % fun())
########## End ##########

第5关 完全数

import math
n = int(input())
########## Begin ##########
def check():
    ans=1
    for i in range(2,int(math.sqrt(n)+1)):
        if i*i==n:
            ans=ans+i
            return int(ans)==n
        if n%i==0:
            ans=ans+i
            ans=ans+n/i
    return int(ans)==n
if check():
    print("True")
else:
    print("False")
########## End ##########

第6关 完全数(续)

import math
########## Begin ##########
def check(x):
    ans=1
    for i in range(2,int(math.sqrt(x)+1)):
        if i*i==x:
            ans=ans+i
            return int(ans)==x
        if x%i==0:
            ans=ans+i
            ans=ans+x/i
    return int(ans)==x
for i in range(2,1001):
    if check(i):
        print(i)
########## End ##########

第7关 素数

import math
x=int(input())
########## Begin ##########
def check(x):
    for i in range(2,int(math.sqrt(x)+1)):
        if i*i==x:
            return 0
        if x%i==0:
            return 0
    return 1
if check(x):
    print("True")
else:
    print("False")
########## End ##########

第8关 解析解和数值解

import math
import numpy as np
n = int(input())
########## Begin ##########
def f(x):
    return ((math.e)**x)*(math.sin(x))
st=math.pi/n
S=0
for i in np.arange(st,math.pi+(3/4)*st,st):
    S=S+(f(i)+f(i-st))*st/2
########## End ##########
print('%.4f' % S)
posted @ 2026-11-03 08:57  qtanglani  阅读(23)  评论(0)    收藏  举报