问题求解——函数运用

第1关 天数计算

########## Begin ##########
def run(x):
    if x%4==0:
        if x%100==0:
            if x%400==0:
                return 1
            else:
                return 0
        else:
            return 1
    else:
        return 0

def dayOfYear(y,m,d):
    ans=0
    for i in range(1,m):
        if i==1 or i==3 or i==5 or i==7 or i==8 or i==10 or i==12:
            ans=ans+31
        elif i==2:
            if run(y)==1:
                ans=ans+29
            else:
                ans=ans+28
        else:
            ans=ans+30
    ans=ans+d
    return ans

########## End ##########
y = int(input())    #年
m = int(input())    #月
d = int(input())    #日
day = dayOfYear(y,m,d)
print('%d年%d月%d日是这年第%d天' % (y,m,d,day))

第2关 打印圣诞树

print("         *         ")
print("        ***        ")
print("       *****       ")
print("      *******      ")
print("     *********     ")

print("         *         ")
print("        ***        ")
print("       *****       ")
print("      *******      ")
print("     *********     ")
print("    ***********    ")
print("   *************   ")

print("         *         ")
print("        ***        ")
print("       *****       ")
print("      *******      ")
print("     *********     ")
print("    ***********    ")
print("   *************   ")
print("  ***************  ")
print(" ***************** ")
print("*******************")

print("        ***        ")
print("        ***        ")
print("        ***        ")
print("        ***        ")
print("        ***        ")
print("        ***        ")

第3关 矩阵乘法

########## Begin ##########


########## End ##########
import myMatrix 
num1 = int(input())
num2 = int(input())

def multiply(A,B):
    n=len(A)
    k=len(A[0])
    m=len(B[0])
    C=[[0]*m for _ in range(0,n)]
    for i in range(0,n):
        for j in range(0,m):
            for o in range(0,k):
                C[i][j]=C[i][j]+A[i][o]*B[o][j]
    return C

A = myMatrix.getMatrix(num1)
print('A=')
myMatrix.printMatrix(A)

B = myMatrix.getMatrix(num2)
print('\nB=')
myMatrix.printMatrix(B)

C=multiply(A, B)
print('\nC=AxB=')
myMatrix.printMatrix(C)

第4关 验证哥德巴赫猜想

########## Begin ##########

def YES(N):
#判断是否素数

def Goldbach(N):
    for i in range(3,N):
        if YES(i) and YES(N-i):
            return i,N-i

########## End ##########
N=int(input(''))
N1,N2 = Goldbach(N)
print('%d = %d + %d' % (N, N1, N2))

第5关 实现欧拉函数

########## Begin ##########
import math

def Phi(N):
    if N==1:
        return 1
    ans=0
    for i in range(1,N):
        if #这里编写最大公因数函数:
            ans=ans+1
    return ans
########## End ##########
n=int(input(''))
print('Phi(%d)=%d' % (n, Phi(n)))

第6关 推翻欧拉的猜想

########## Begin ##########

def YES(N):
    for i in range(2,N):
        if N%i==0:
            return 0
    return 1

def f(N):
    return N*N+N+41

cnt=1
while YES(f(cnt)):
    print("f(%d)=%d是素数" % (cnt,f(cnt)))
    cnt=cnt+1
for i in range(2,f(cnt)):
    if f(cnt)%i==0:
        print("f(%d)=%d=%d*%d不是素数" % (cnt,f(cnt),i,f(cnt)/i))
        break
########## End ##########
posted @ 2026-11-04 18:34  qtanglani  阅读(18)  评论(0)    收藏  举报