一道邏輯推理題的C 實現

2021-07-04 05:57:48 字數 1491 閱讀 6957

題目為「周遊的騎士」,來自一本邏輯推理書。

**實現如下:

核心思想是用mytry遞迴函式來實現,check_ok函式測試線索是否成立。

#include 

#include

#define empty (-1)

using

namespace

std;

int b[4][5];

enum name ;

enum month ;

enum week ;

enum place ;

enum row ;

char sname[80]= ;

char smonth[80]= ;

char sweek[80]= ;

char splace[80]= ;

void printboard()

bool check_ok(int r, int c)

}//r3 dimide不是1月,他比森林中的週期大 1 周

if(b[month][dimide] != empty && b[month][dimide] == m1) return

false;

for(j=0; j<5; j++)

}//r4 村邊的騎士不是9月份

for(j=0; j<5; j++)

}//r5 baoqiu在沼澤荒野,不是4周

if(b[place][baoqiu] != empty && b[place][baoqiu] != zhaozehuangye) return

false;

if(b[week][baoqiu] != empty && b[week][baoqiu] == w4 ) return

false ;

//r6 6周對應3月

for(j=0; j<5; j++)

}//r7 sibainisi對應5周

if(b[week][sibainisi] != empty && b[week][sibainisi] != w5 ) return

false ;

//r8 kaowode對應7月

if(b[month][kaowode] != empty && b[month][kaowode] != m7) return

false;

return

true;

} }

if(flagchongfu) continue;

if(check_ok(row,col))

else

mytry(count+1);

}else

continue;

}b[row][col]=empty;

return ;

}int main()

一道邏輯推理題 猜生日

小明和小強都是張老師的學生,張老師的生日是m月n日,2人都知道張老師的生日是下列10組中的一天,張老師把m值告訴了小明,把n值告訴了小強,張老師問他們知道他的生日是哪一天?3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明說 如果我不知道的...

解答微軟的一道邏輯推理題

以下是微軟有名的一道邏輯推理題,網上有不少人給出了答案,但是推理過程都有些問題,在這裡我給出我的推理過程 教授選出兩個從2到9的數,把它們的和告訴學生甲,把它們的積告訴學生乙,讓他們輪流猜這兩個數 甲說 我猜不出 乙說 我猜不出 甲說 我猜到了 乙說 我也猜到了 問這兩個數是多少 我的解答 設甲聽到...

使用程式解決一道邏輯推理題

小明和小強都是張老師的學生,張老師的生日是m月n日,2人都知道張老師的生日是下列10組中的一天 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 張老師將m值告訴了小明,將n值告訴了小強,張老師問他們知道他的生日是哪一天嗎?小明說 如果我不知道...