T1.乘法练习
使用整数类型读入数字,将数字对 100010001000 取余得到后三位的数字,然后将读入的数字整除 100010001000。重复这个操作即可分出三个整数。
T2.TJZ之王
使用六个变量分别读入 009 和 xiaoshuai 的三轮分数,分别比较计算胜者是谁。
T3.团伙首领
使用桶数组纪录有多少个首领编号,即为团伙数量
T4.不与最大数相同的数字之和
先遍历一遍数组找出最大值,再遍历一遍数组把不等于最大值的数都加起来,最后输出
T5.蛇皮矩阵
蛇皮矩阵是一种特殊的矩阵填充方式,其特点是每一行的填充方向交替变化。具体来说,奇数行从左到右填充,偶数行从右到左填充。
我们可以按照以下步骤来实现:
1. 初始化矩阵:创建一个 n x n 的二维数组来存储矩阵。
2. 填充矩阵:
* 使用一个变量 num 来记录当前要填充的数字,初始值为1。
* 遍历每一行,奇数行从左到右填充,偶数行从右到左填充。
3. 输出矩阵:按照格式输出矩阵。
T6.颜料覆盖
1. 对于每个区域(矩阵的每一行),找到涂抹强度最大的一次是哪一次。
2. 在这一次之前,统计有多少次涂抹(不计算未涂抹的情况)强度比这一次小。
核心逻辑是通过遍历每一行的涂抹记录,动态更新最大值及其位置,并统计在最大值之前的有效涂抹次数。
T7.上台阶2
题目理解
假设有一个楼梯,总共有 NNN 级台阶。你一开始站在地面(第 0 级台阶),每次可以迈 1 级、2 级或 3 级台阶。问:爬到第 NNN 级台阶,有多少种不同的走法?
比如:
* 如果 N=3N = 3N=3,你可以用以下 4 种方式爬上去:
1. 1 级 + 1 级 + 1 级
2. 1 级 + 2 级
3. 2 级 + 1 级
4. 3 级
所以答案是 4。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
解题思路
我们可以用“分步思考”的方法来解决这个问题。假设你想爬到第 NNN 级台阶,那么你最后一步可能是迈了 1 级、2 级或 3 级台阶。那么:
1. 如果你最后迈了 1 级台阶,那么你之前一定是从第 N−1N-1N−1 级台阶上来的。
2. 如果你最后迈了 2 级台阶,那么你之前一定是从第 N−2N-2N−2 级台阶上来的。
3. 如果你最后迈了 3 级台阶,那么你之前一定是从第 N−3N-3N−3 级台阶上来的。
所以,爬到第 NNN 级台阶的总方法数,等于爬到第 N−1N-1N−1 级、第 N−2N-2N−2 级和第 N−3N-3N−3 级台阶的方法数之和。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
具体步骤
1. 初始化:
* 设一个数组 dp,其中 dp[i] 表示爬到第 iii 级台阶的方法数。
* 初始条件:dp[0] = 1,因为在地面(第 0 级台阶)只有一种方法,就是不迈步。
2. 递推计算:
* 对于每一级台阶 iii(从 1 到 NNN),计算 dp[i]:
* 如果 i−1≥0i - 1 \geq 0i−1≥0,则 dp[i] += dp[i - 1]。
* 如果 i−2≥0i - 2 \geq 0i−2≥0,则 dp[i] += dp[i - 2]。
* 如果 i−3≥0i - 3 \geq 0i−3≥0,则 dp[i] += dp[i - 3]。
3. 输出结果:
* 最终答案是 dp[N],即爬到第 NNN 级台阶的方法数。