tromino謎題C 實現

2021-06-05 21:38:23 字數 633 閱讀 5562

tromino謎題 tromino是乙個由棋盤上的三個鄰接方塊組成的l型瓦片。問題是,如何用tromino覆蓋乙個缺少了乙個方塊(可以在棋盤上任何位置)的2^n*2^n棋盤。除了這個缺失的方塊,tromino應該覆蓋棋盤上的所有方塊,而且不能有重疊。(演算法設計與分析基礎p98)

tromino問題是採用分治演算法解決的典型應用。本程式是用c++在dos下實現的,棋盤用二維陣列表示,由於棋盤大小由使用者指定,所以這裡應該動態的開闢二維陣列。開始時缺塊的也由使用者指定,用數字構成l型瓦片。程式如下:

#include#include#include "math.h"

using namespace std;

void tromino(int **,int ,int ,int ,int ,int );

int flag=2;

int main()

else

else if(x<=x1+i-1&&y<=y1+i-1)

else if(x>x1+i-1&&y<=y1+i-1)

else}}

程式執行截圖如下:

C語言謎題

1 下面的程式並不見得會輸出 hello std out,你知道為什麼嗎?include include int main return 0 參 stdout和stderr是不是同裝置描述符。stdout是塊裝置,stderr則不是。對於塊裝置,只有當下面幾種情況下才會被輸入,1 遇到回車,2 緩衝...

C語言謎題

今天看到幾個有趣的c語言謎題與大家分享一下,也避免以後犯同樣的錯誤!1 下面的程式看起來是正常的,使用了乙個逗號表示式來做初始化。可惜這段程式是有問題的。你知道為什麼呢?include int main 參 這個程式會得到編譯出錯 語法出錯 逗號表示式是沒錯,可是在初始化和變數宣告時,逗號並不是逗號...

謎題 c語言

有乙個5 5的網格,其中恰好有乙個格仔是空的,其他格仔各有乙個字母。一共有4種指令 a,b,l,r,分別表示把空格上 下 左 右的相鄰字母移到空格中。輸入初始網格和指令序列 以數字0結束 輸出指令執行完畢後的網格。如果有非法指令,應輸出 this puzzle has no final config...