题目描述
在请求分页式存储管理方式中,要求输入一个对5个页面的访问序列,输出当系统分配给进程物理页框数为m个时,按照FIFO页面替换算法的缺页中断次数(假设初始时页框均为空)。
输入格式
程序要求输入3行,以回车符号作为分隔,第一行是一个整数n,表示页面访问序列中访问页面的次数;第二行是n个整数,数之间以空格作为分隔,表示页面访问序列。第三行是一个整数m,表示系统分配给进程物理页框数。
输出格式
输出一个整数,表示缺页中断次数。
输入样例 复制
12 4 3 2 1 4 3 5 4 3 2 1 5 3
输出样例 复制
9
import java.util.Scanner;
class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a = new int[n];
int i = 0;
while(i < n){
a[i] = scanner.nextInt();
i++;
}
int m = scanner.nextInt();
int[] b = new int[m];
for (i = 0; i < m; i++) {
b[i] = -1;
}
int sum = 0;
for (i = 0; i < n; i++) {
boolean pd = false;
int j = 0;
while(j < m) {
if (a[i] == b[j]) {
pd = true;
}j++;
}
if (!pd) {
for (int k = m - 1; k > 0; k--) {
b[k] = b[k - 1];
}
b[0] = a[i];
sum++;
}
}
System.out.println(sum);
}
}