水题一个,模拟实现就好。
源代码:
#include <iostream>
#include<vector>
using namespace std;
class Prison
{
private:
vector<int> locked;
vector<int> unlocked;
int N;
public:
void Init()
{
cin>>N;
locked.clear();
unlocked.clear();
locked.resize(N+1,1);
unlocked.resize(N+1,0);
}
void Gaming()
{
int temp=N;
for(int i=1;i<=N;++i)
for (int j=i;j<=N;)
{
if(unlocked[j])
{
unlocked[j]=0;
locked[j]=1;
}
else
{
unlocked[j]=1;
locked[j]=0;
}
j+=i;
}
}
int Escape()
{
int temp=0;
for (int i=1;i<=N;++i)
temp+=unlocked[i];
return temp;
}
};
int main()
{
int M;
cin>>M;
while (M--)
{
Prison P;
P.Init();
P.Gaming();
cout<<P.Escape()<<endl;
}
return 0;
}

本文介绍了一个简单的计算机科学问题——模拟监狱逃脱的过程。通过使用C++编程语言,实现了一个算法来解决这个问题,旨在帮助读者理解基本的编程概念和算法实现。
7832

被折叠的 条评论
为什么被折叠?



