import java.util.Scanner; public class Main { // 取模常数 private static final int MOD = 998244353; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); scanner.close(); System.out.println(countWays(n)); } /** * 计算上n阶楼梯的不同走法数量 * 每一步可以上1阶或2阶 */ private static int countWays(int n) { // 处理边界情况 if (n == 1) { return 1; } if (n == 2) { return 2; } // 创建dp数组,dp[i]表示上i阶楼梯的走法数量 int[] dp = new int[n + 1]; // 初始化边界条件 dp[1] = 1; // 1阶楼梯只有1种走法:1步1阶 dp[2] = 2; // 2阶楼梯有2种走法:1+1或直接2阶 // 动态规划计算 for (int i = 3; i <= n; i++) { // 第i阶可以从第i-1阶走1步上来,或从第i-2阶走2步上来 dp[i] = (dp[i - 1] + dp[i - 2]) % MOD; } return dp[n]; } }