題目是:輸入5*5的矩陣,數值大小為1-5,上下左右相同的數值達到3個或以上可消除,每次都消除可消除的最大的那個區域,消除後的剩餘數值?️由重力作用向下移動,求按此規則消除,直到無法消除時,剩餘未消除數值的個數。
例如:31211
第一次: ***xx
***xx
***xx
3x2xx
3x223
第二次:***xx
***xx
***xx
3***x
3***3
剩餘3個
下面是我寫的**,結果是正確的,但是步驟自我感覺很亂,希望能夠交流,思考如何改進???
#include
using namespace std;
void chazhaoxiaochu(int xxl[5][5]);//使用連通陣列將連通部分(相同值相鄰區域)用同樣的數字表示
//求取連通陣列
for (int i = 0; i<5; i++) ;
for (int liantong_num = 1; liantong_num < num; liantong_num++) ;
int data;
int i = 0,j = 0;
while (cin >> data) {
xxl[i][j] = data;
j++;
if(j == 5)
i++;
j=0;
chazhaoxiaochu(xxl);//消除過程
//計算剩餘未消除部分
int sum = 0;
for(i = 0; i<5; i++){
for(j = 0; j<5; j++)
if(xxl[i][j] != 0)
sum++;
cout << "result: " << sum << endl;
return 0;
京東筆試程式設計題之消消樂
題目 有乙個5 5的正方形網格,沒個格仔中有乙個大於0且小於4的整數,對於乙個確定的局面,若乙個格仔與它上下左右四個方向的某個格仔 如果存在 數字相同,則稱這兩個格仔是連通的,並且這種連通具有傳遞性。每次,可以選擇乙個格仔,若與這個格仔連通的格仔 包括自己 數大於等於3,你就可以選擇消掉這個格仔,與...
京東2015校招筆試程式設計題
醜數問題,在 劍指offer 一書的182頁有詳細討論。簡單來說,就是 新的醜數總是以前的某個醜數乘以2 3或5產生,那麼分別用三個指標p2 p3和p5指向乘以2 3和5後能生成新的醜數的醜數,那麼下乙個醜數就是它們生成的新的醜數中最小的乙個。public static int kthnumber ...
京東2018實習C 筆試程式設計題
ifndef jingdongbishi h define jingdongbishi h 求1 n的最小公倍數。把每個數字分解質因數,算他們每個質因數的貢獻,然後乘起來。根據唯一分解定理和最小公倍數定理,求每個質數相乘即可 define maxn 100009 最大的資料n為100000 int ...