공부하자.../C언어
큐를 이용하여 3번째 수만 골라내는 조세퍼스 문제
진진형제
2010. 10. 27. 09:42
1~42까지 정수에서 3번째 수를 반복해서 삭제할 때 마지막에 남는 수는?
#include <iostream>
#include <string>
#include <queue>
using namespace std;
void main()
{
queue<int> qu;
int i, temp;
for(i=1; i<=42; i++)
{
qu.push(i);
}
while(qu.size() > 2)
{
temp = qu.front();
qu.pop();
qu.push(temp);
temp = qu.front();
qu.pop();
qu.push(temp);
qu.pop(); // 3번째수삭제
}
while(!qu.empty())
{
cout << qu.front() << endl;
qu.pop();
}
}