騰訊 遊戲任務標記1024

2021-08-22 00:20:54 字數 1007 閱讀 4588

遊戲裡面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有1024個,任務id範圍[1,1024]。請用32個unsigned int型別來記錄著1024個任務是否已經完成。初始狀態都是未完成。 輸入兩個引數,都是任務id,需要設定第乙個id的任務為已經完成;並檢查第二個id的任務是否已經完成。 輸出乙個引數,如果第二個id的任務已經完成輸出1,如果未完成輸出0。如果第一或第二個id不在[1,1024]範圍,則輸出-1。

輸入包括一行,兩個整數表示人物id.
輸出是否完成
示例1

複製

1024 1024
複製

1
思路:

1024=32*32,因此可用32個整數表示1024位(因為每個整數32位)

任務id範圍是1~1024,所以減1轉化為0~1023

任務id除以32,商為存到哪個整數,餘數為該整數對應位(置1即可)

#include #include using namespace std;

int main()

int index = (id_one - 1) / 32; //一共32個坑,看這個數在那個坑

int bit = (id_one - 1) % 32; //看在這個坑的第幾位

arr[index] |= 1 << bit; //左移bit位,和那個數 或,設定那個數為1

index = (id_two - 1) / 32;

bit = (id_two - 1) % 32;

if (arr[index] & 1 << bit)

cout << 1 << endl;

else

cout << 0 << endl;

}return 0;

}

騰訊秋招上機題目遊戲任務標記C 實現

題目 遊戲裡面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有1024個,任務id範圍 1,1024 請用32個unsigned int型別來記錄著1024個任務是否已經完成。初始狀態都是未完成。輸入兩個引數,都是任務id,需要設定第乙個id的任務為已經完成 並檢查第二個id的任務...

程式設計題 遊戲任務標記

內容會持續更新,有錯誤的地方歡迎指正,謝謝 遊戲裡面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有1024個,任務id範圍 1,1024 請用32個unsigned int型別來記錄著1024個任務是否已經完成。初始狀態都是未完成。輸入兩個引數,都是任務id,需要設定第乙個id的...

2017校招 遊戲任務標記

題目描述 遊戲裡面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有1024個,任務id範圍 1,1024 請用32個unsigned int型別來記錄著1024個任務是否已經完成。初始狀態都是未完成。輸入兩個引數,都是任務id,需要設定第乙個id的任務為已經完成 並檢查第二個id的...