返回列表 發帖

710 FIFO分頁替換演算法

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


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


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

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string s="0000";
  4. queue<char> q;
  5. int main()
  6. {
  7.     for(int i=0;i<10;i++)
  8.     {
  9.         if(i<4)
  10.         {
  11.             cin>>s[i];
  12.             q.push(s[i]);
  13.         }else{
  14.             char in,ot;
  15.             cin>>in;
  16.             if(s.find(in)==-1)
  17.             {
  18.                 q.push(in);
  19.                 ot=q.front();
  20.                 q.pop();
  21.                 int idx=s.find(ot);
  22.                 s[idx]=in;
  23.             }
  24.         }
  25.         printf("%c %c %c %c \n",s[0],s[1],s[2],s[3]);
  26.     }
  27.     return 0;
  28. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string s="0000";
  4. queue<char>q;
  5. int main()
  6. {
  7.     for(int i=0;i<10;i++)
  8.     {
  9.         if(i<4)
  10.         {
  11.             cin>>s[i];
  12.             q.push(s[i]);
  13.         }
  14.         else
  15.         {
  16.             char in,ot;
  17.             cin>>in;
  18.             if(s.find(in)==-1)
  19.             {
  20.                 q.push(in);
  21.                 ot=q.front();
  22.                 q.pop();
  23.                 int idx=s.find(ot);
  24.                 s[idx]=in;
  25.             }
  26.         }
  27.         printf("%c %c %c %c \n",s[0],s[1],s[2],s[3]);
  28.     }
  29.     return 0;
  30. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string s="0000";
  4. queue<char> q;
  5. int main()
  6. {
  7.     for(int i=0; i<10; i++)
  8.     {
  9.         if(i<4)
  10.         {
  11.             cin>>s[i];
  12.             q.push(s[i]);
  13.         }else
  14.         {
  15.             char in, ot;
  16.             cin>>in;
  17.             if(s.find(in)==-1)
  18.             {
  19.                 q.push(in);
  20.                 ot=q.front();
  21.                 q.pop();
  22.                 int idx=s.find(ot);
  23.                 s[idx]=in;
  24.             }
  25.         }
  26.         printf("%c %c %c %c \n", s[0], s[1], s[2], s[3]);
  27.     }
  28.     return 0;
  29. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string s="0000";
  4. queue<char> q;
  5. int main()
  6. {
  7.     for(int i=0;i<10;i++)
  8.     {
  9.         if(i<4)
  10.         {
  11.             cin>>s[i];
  12.             q.push(s[i]);
  13.         }else{
  14.             char in,ot;
  15.             cin>>in;
  16.             if(s.find(in)==-1)
  17.             {
  18.                 q.push(in);
  19.                 ot=q.front();
  20.                 q.pop();
  21.                 int idx=s.find(ot);
  22.                 s[idx]=in;
  23.             }
  24.         }
  25.         printf("%c %c %c %c \n",s[0],s[1],s[2],s[3]);
  26.     }
  27.     return 0;
  28. }
複製代碼

TOP

請假..................................

TOP

返回列表