遊戲裡面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有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的...