# Math# Pattern Recognition

d173 - 飛蛾撲火番外篇之楓火看電影

🔗 前往 ZeroJudge 原題

題目描述

題目描述了一個關於楓火看電影的故事,但實際上要求計算在一個 N x N 的棋盤上,將黑棋從右上角移動到左下角的最少步數。題目暗示棋盤上除了黑棋外,其餘位置都是白棋,且移動方式未明確說明,但根據輸出結果判斷,題目實際上要求的是棋盤大小 N 對應的步數公式。

解題思路

觀察題目提供的範例,可以發現輸入的 N 值與輸出的值之間存在一個線性關係。 當 N = 2 時,輸出為 5 (28-11 = 5) 當 N = 3 時,輸出為 13 (38-11 = 13) 當 N = 4 時,輸出為 21 (48-11 = 21) 當 N = 5 時,輸出為 29 (58-11 = 29)

因此,可以推斷出輸出值等於 N * 8 - 11。程式碼直接實現了這個公式。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <stdio.h>
int main(){
	int a;
	while(scanf("%d",&a)>0)
		printf("%d\n",a*8-11);
}

Discussion