if(_____________________) return false; //填空
}return true;
}int getrowstonenum(int x[6],int r)
int getcolstonenum(int x[6],int c)
void show(int x[6])
printf("\n");
}void f(int x[6],int r,int c);
void gonext(int x[6],int r,int c)
void f(int x[6],int r,int c)
return;
}if(______________) //填空,已經放有了棋子
int rr=getrowstonenum(x,r);
int cc=getcolstonenum(x,c);
if(cc>=3) //本列已滿
gonext(x,r,c);
else if(rr>=3) //本行已滿
f(x,r+1,0);
else
}int main(int argc,char *ar**)
,,,,,};
f(x,0,0);
printf("%d\n",n);
return 0;
}解題思路:
checkstonenum(int x[6])函式為檢查棋盤的滿行每列是否都只有三個棋子
getrowstonenum(int x[6], int r)函式返回r行有幾個棋子
getcolstonenum(int x[6], int c)函式返回c列有幾個棋子
show(int x[6])函式為列印棋盤情況
gonext(int x[6], int r, int c)函式確定下一枚棋子的位置,呼叫f(int x[6], int r, int c)
易得填空1為 if(numrow != 3 || numcol != 3) return false; 只要有一行或一列的棋子數不等於3個return false
填空2為 if(c<6)f(x, r, c+1);因為c<6,所以該行還沒有沒有走到底,可以繼續試探該行的下一列
填空3為 if(x[r][c] != 0) 注釋就有提示,該位置放有棋子,故x[r][c] != 0
#include#includeint n = 0;
bool checkstonenum(int x[6])
if(numrow!=3 || numcol!=3)return false;
} return true;
}int getrowstonenum(int x[6], int r)
return sum;
} int getcolstonenum(int x[6], int c)
return sum;
}void show(int x[6])
printf("\n");
} printf("\n");
}void f(int x[6], int r, int c);
void gonext(int x[6], int r, int c)else
}void f(int x[6], int r, int c)
return;
} if(x[r][c])
int rr = getrowstonenum(x, r);
int cc = getcolstonenum(x, c);
if(cc >= 3)else if(rr >= 3)else }}
int main()
, ,,,
,,};
f(x, 0, 0);
printf("%d\n", n);
return 0;
}
藍橋杯 省賽c語言(第七題)
藍橋杯 省賽c語言 第七題 x星球有26只球隊,分別用a z的26個字母代表。他們總是不停地比賽。在某一賽段,哪個球隊獲勝了,就記錄下代表它的字母,這樣就形成乙個長長的串。國王總是詢問 獲勝次數最多的和獲勝次數最少的有多大差距?當熱他不關心那些一次也沒輸入,乙個串,表示球隊獲勝情況 保證串的長度 1...
2023年藍橋杯預賽第九題奪冠概率
解題思路 模擬100000次比賽,獲勝的概率用隨機數決定,比如a vs b,a贏的概率為0.6,那麼生成1 100的隨機數,如果隨機數小於等於60,則a勝,否則b勝。include include include includeusing namespace std double possible ...
2023年藍橋杯省賽A組第七題 正則問題
題目 考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6。輸入 乙個由x 組成的正規表示式。輸入長度不超過100,保證合法。輸出 這個正規表示式能接受的最長字串的長度。例如,輸入 xx x...