前言:
博主考试,六道编程题做了五道,未做的正式此题,再研究后,今日讲解
题目:
解决方法:
首先,使用函数进行处理
如果n=1,返回0,2返回1,大于2,使用错排公式
def getN(n):
assert type(n)==type(1)
assert n>0
if n==1:
return 0
if n==2:
return 1
if n>2:
return (n-1)*(getN(n-1)+getN(n-2))
最后,输出数据输出函数
n=int(input())
print(getN(n))
整体代码:
def getN(n):
assert type(n)==type(1)
assert n>0
if n==1:
return 0
if n==2:
return 1
if n>2:
return (n-1)*(getN(n-1)+getN(n-2))
n=int(input())
print(getN(n))
注:(这mama程序再洛谷上可以得满分)
作者曰:什么是实力?
我们下期再见