PKU 1012 Joseph
2008-07-11 18:01
387 查看
#include <iostream>
#define MAXK 14
using namespace std;
bool check(int n, int k)
{
int all = n * 2, w = k % all;
for (int i = 1; i < n; i++)
{
all--;
if (--w < 0)
w = all;
w = (w + k) % all;
if (w <= n && w > 0)
return false;
}
return true;
}
int main()
{
int m[MAXK];
int i, j, k;
for (i = 1; i < MAXK; i++)
for (j = i + 1; ; j += (j % i == 0) ? i + 1 : 1)
if (check(i, j))
{
m[i] = j;
break;
}
while (scanf("%d", &k) && k)
printf("%d\n", m[k]);
return 0;
}
#define MAXK 14
using namespace std;
bool check(int n, int k)
{
int all = n * 2, w = k % all;
for (int i = 1; i < n; i++)
{
all--;
if (--w < 0)
w = all;
w = (w + k) % all;
if (w <= n && w > 0)
return false;
}
return true;
}
int main()
{
int m[MAXK];
int i, j, k;
for (i = 1; i < MAXK; i++)
for (j = i + 1; ; j += (j % i == 0) ? i + 1 : 1)
if (check(i, j))
{
m[i] = j;
break;
}
while (scanf("%d", &k) && k)
printf("%d\n", m[k]);
return 0;
}
相关文章推荐
- 约瑟夫 (Joseph) -- ACM PKU 1012 解题报告
- PKU-1012 Joseph (约瑟夫环)
- PKU ACM-1012题 java Joseph
- PKU ACM 1012 JOSEPH问题
- PKU1012 Joseph 约瑟夫问题
- PKU ACM 1012 Joseph 约瑟夫
- [PKU] 1012 Joseph [约瑟夫环,枚举]
- pku 1012 Joseph
- pku1012 Joseph
- Poj 1012 Joseph
- pku1012
- poj1012-Joseph(输出出列编号模板)
- poj1012 Joseph
- POJ 1012 Joseph
- PKU1012 约瑟夫问题
- ACM_CUGOJ_1012_Joseph Problem约瑟夫
- POJ 1012 Joseph
- POJ 1012 Joseph
- POJ 1012:Joseph
- POJ1012 Joseph