c盤清理的步驟是什么(如何清理C盤空間)
如何清理C盤空間怎么清理C盤的垃圾文件?每天上網會給電腦帶來很多臨時文件,這些垃圾文件不清理掉時間久了就會影響到電腦的運行速度。那怎
2022/12/08
(相關資料圖)
1.簡述:
游戲里面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有1024個,任務ID范圍[1,1024]。請用32個unsigned int類型來記錄著1024個任務是否已經完成。初始狀態都是未完成。 輸入兩個參數,都是任務ID,需要設置第一個ID的任務為已經完成;并檢查第二個ID的任務是否已經完成。 輸出一個參數,如果第二個ID的任務已經完成輸出1,如果未完成輸出0。如果第一或第二個ID不在[1,1024]范圍,則輸出-1。
輸入包括一行,兩個整數表示任務ID.
輸出是否完成
輸入:
1024 1024
輸出:
1
2.代碼實現:
import java.util.Scanner;/** * 用32個int記錄1024個任務狀態,任務ID為1~1024,任務初始狀態都是未完成 * 函數功能:輸入兩個任務ID,將第一個任務設為已完成,并檢測第二個任務是否已完成(完成返回1,未完成返回0) * * 32個int,每個int32位,共32*32=1024位,剛好每一位表示一個任務的狀態 */public class T4GameTaskTag { public static void main(String[] args) { //tasks[0]:1~32號任務 tasks[1]:33~64號任務 int[] tasks = new int[32]; Scanner in = new Scanner(System.in); while (in.hasNextInt()) { // 注意 while 處理多個 case int id1 = in.nextInt(); int id2 = in.nextInt(); System.out.println(setAndCheck(tasks, id1, id2)); } } public static int setAndCheck(int[] tasks, int id1, int id2) { if (!checkInParams(id1, id2)) { return -1; } //任務在tasks[n] 0~31 int n = (id1 - 1) / 32; //設置id1的任務為已完成 int bit = (id1 - 1) % 32; tasks[n] = tasks[n] | (1 << bit); //檢查id2的任務是否已完成 int n2 = (id2 - 1) / 32; int bit2 = (id2 - 1) % 32; //使用無符號右移:由于java沒有無符號數 return (tasks[n2] & (1 << bit2)) >>> bit2; } private static boolean checkInParams(int id1, int id2) { boolean b1 = id1 >= 1 && id1 <= 1024; boolean b2 = id2 >= 1 && id2 <= 1024; return b1 && b2; }}