6.3.6 跳台阶
题目描述:
一个楼梯共有 n 级台阶,每次可以走一级或者两级,问从第 0 级台阶走到第 n 级台阶一共有多少种方案。
输入格式:
共一行,包含一个整数 n。
输出格式:
共一行,包含一个整数,表示方案数。
输入样例:
5
输出样例:
8
在线评测环境:AcWing 821. 跳台阶
代码:
def steps(n): if n==1 or n==2: return n return steps(n-1)+steps(n-2) n = int(input()) a = steps(n) print(a)
6.3.7 走方格
题目描述:
给定一个 n×m 的方格阵,沿着方格的边线走,从左上角 (0,0) 开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m) 一共有多少种不同的走法。
输入格式:
共一行,包含两个整数 n 和 m。
输出格式:
共一行,包含一个整数,表示走法数量。
输入样例:
2 3
输出样例:
10
在线评测环境:AcWing 822. 走方格
代码:
def dfs(x, y): global a if x == n and y == m: a += 1 else: if x < n: dfs(x + 1, y) if y < m: dfs(x, y + 1) global n, m a = 0 n, m = map(int, input().split()) a = 0 dfs(0, 0) print(a)
6.3.8 排列
题目描述:
给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。
现在,请你按照字典序将所有的排列方法输出。
输入格式:
共一行,包含一个整数 n。
输出格式:
按字典序输出所有排列方案,每个方案占一行。
输入样例:
3
输出样例:
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
在线评测环境:AcWing 823. 排列
代码:
def array(d): global n, ans, res if n == d: for x in range(n): print(ans[x], end = ' ') print() return for x in range(1, n + 1): if not res[x]: ans[d] = x res[x] = 1 array(d + 1) res[x] = 0 ans = [0] * 10 res = [0] * 10 n = int(input()) array(0)
6.3.9 蛇形矩阵
题目描述:
输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m按照回字蛇形填充至矩阵中。
具体矩阵形式可参考样例。
输入格式:
输入共一行,包含两个整数 n 和 m。
输出格式:
输出满足要求的矩阵。
矩阵占 n 行,每行包含 m 个空格隔开的整数。
输入样例:
3 3
输出样例:
1 2 3 8 9 4 7 6 5
在线评测环境:AcWing 756. 蛇形矩阵
代码:
n, m = input().split() m = int(m) n = int(n) l = [[0] * m for i in range (n)] x = y = 0 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] d = 1 for i in range(1, m * n + 1): l[x][y] = i a = x + dx[d] b = y + dy[d] if a < 0 or a >= n or b < 0 or b >= m or l[a][b]>0: d = (d + 1) % 4 a = x + dx[d] b = y + dy[d] x = a y = b for i in range(n): for j in range(m): print(l[i][j], end = ' ') print('')
*6.4 关于程序设计竞赛
注:本小节带 *,不需要进行学习,可以简单进行了解
⛲️ 面向过程是代码的核心思想,它涉及众多的算法,如果你还是大一或者大二,那么我强烈建议你去参加算法竞赛,如:ICPC,CCPC,CCSP,蓝桥杯,GPLT团队程序设计天梯赛,,以及一些能力测试:CCF-CSP,PAT(甲级,顶级),你可以通过一些小型比赛去积累经验,比如:全国高校计算机能力挑战赛,全国大学生算法设计与编程挑战赛,这里给出一些网址,需要的读者可以进网址去了解详情:
ICPC:The ICPC International Collegiate Programming Contest
CCPC:中国大学生程序设计竞赛(CCPC)-官网
CCSP:CCSP(CCF大学生计算机系统与程序设计竞赛)
蓝桥杯:蓝桥杯大赛——全国大学生TMT行业赛事
GPLT团队程序设计天梯赛:团队程序设计天梯赛
CCF-CSP:CCF-CSP认证
PAT:PAT计算机程序设计能力考试
全国高校计算机能力挑战赛:2021年第三届全国高校计算机能力挑战赛
全国大学生算法设计与编程挑战赛:赛氪竞赛网
❗️ 注:上述的所有比赛都需要算法基础,这是现在的我们所不具备的,目前我们只掌握了语言的基础,上述比赛感兴趣的读者自行去了解,我也写过一些算法博客,可供大家学习,这些算法博客是用 C++ 去写的,如果你要参加算法竞赛,那么 C++ 是你必须学会的语言,而不是 Python:算法基础内容汇总,算法提高内容汇总,当然,这有点扯远了,本博客的目的是给大家讲解 Python 语言,是面向企业和工作的,和算法竞赛无任何关联,上述只是给小部分读者所解释
发表评论