Board logo

標題: 710 FIFO分頁替換演算法 [打印本頁]

作者: 鄭繼威    時間: 2024-5-22 17:58     標題: 710 FIFO分頁替換演算法

本帖最後由 鄭繼威 於 2024-5-22 18:03 編輯

1. 題目說明:
請依下列題意進行作答,使輸出值符合題意要求。

2. 設計說明:
請撰寫一程式,實作FIFO(First in First out)分頁替換演算法,讓使用者輸入十個小於10的正整數,要儲存在四個記憶體空間中,請依序輸出每次經過FIFO演算法後的結果。輸出的每個值請給予兩個欄位寬並靠左對齊若記憶體空間為Null時,以數字「0」表示
FIFO規則:先進先出法,當記憶體空間滿的時候,會淘汰掉最先進入記憶體的資料
分頁替換規則:輸入的資料若存在於記憶體空間中,則不動作;反之,則執行 FIFO規則。
提示:若使用 Java 語言答題,請以「JP」開頭命名包含 main 靜態方法的 class,評測系統才能正確評分。

3. 輸入輸出:
輸入說明
十個小於10的正整數

輸出說明
每次經過FIFO分頁替換演算法後的結果

範例輸入
7
5
1
2
5
3
5
4
2
3

範例輸出
7 0 0 0
7 5 0 0
7 5 1 0
7 5 1 2
7 5 1 2
3 5 1 2
3 5 1 2
3 4 1 2
3 4 1 2
3 4 1 2


程式輸出擷圖
下圖中的 黃色點 為 空格


本帖隱藏的內容需要回復才可以瀏覽

作者: 李宗儒    時間: 2024-5-22 19:19

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. queue<char> q;
  4. string b="0000";

  5. int main()
  6. {
  7.     for(int i=0;i<10;i++)
  8.     {
  9.         char a;
  10.         cin>>a;
  11.         if(i<4)
  12.         {
  13.             q.push(a);
  14.             b[i]=a;
  15.         }
  16.         else
  17.         {
  18.             if(b.find(a)==-1)
  19.             {
  20.                 q.push(a);
  21.                 char u=q.front();
  22.                 b[b.find(u)]=a;
  23.                 q.pop();
  24.             }
  25.         }
  26.         printf("%-2c%-2c%-2c%-2c\n",b[0],b[1],b[2],b[3]);
  27.     }

  28.     return 0;
  29. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2