Eeny Meeny Moo 【 约瑟夫问题】
来源:互联网 发布:matlab迭代算法 编辑:程序博客网 时间:2024/06/05 14:39
http://poj.org/problem?id=2244
Eeny Meeny Moo
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3336 Accepted: 2312
Description
Surely you have made the experience that when too many people use the Internet simultaneously, the net becomes very, very slow.
To put an end to this problem, the University of Ulm has developed a contingency scheme for times of peak load to cut off net access for some cities of the country in a systematic, totally fair manner. Germany's cities were enumerated randomly from 1 to n. Freiburg was number 1, Ulm was number 2, Karlsruhe was number 3, and so on in a purely random order.
Then a number m would be picked at random, and Internet access would first be cut off in city 1 (clearly the fairest starting point) and then in every mth city after that, wrapping around to 1 after n, and ignoring cities already cut off. For example, if n=17 and m=5, net access would be cut off to the cities in the order [1,6,11,16,5,12,2,9,17,10,4,15,14,3,8,13,7]. The problem is that it is clearly fairest to cut off Ulm last (after all, this is where the best programmers come from), so for a given n, the random number m needs to be carefully chosen so that city 2 is the last city selected.
Your job is to write a program that will read in a number of cities n and then determine the smallest integer m that will ensure that Ulm can surf the net while the rest of the country is cut off.
To put an end to this problem, the University of Ulm has developed a contingency scheme for times of peak load to cut off net access for some cities of the country in a systematic, totally fair manner. Germany's cities were enumerated randomly from 1 to n. Freiburg was number 1, Ulm was number 2, Karlsruhe was number 3, and so on in a purely random order.
Then a number m would be picked at random, and Internet access would first be cut off in city 1 (clearly the fairest starting point) and then in every mth city after that, wrapping around to 1 after n, and ignoring cities already cut off. For example, if n=17 and m=5, net access would be cut off to the cities in the order [1,6,11,16,5,12,2,9,17,10,4,15,14,3,8,13,7]. The problem is that it is clearly fairest to cut off Ulm last (after all, this is where the best programmers come from), so for a given n, the random number m needs to be carefully chosen so that city 2 is the last city selected.
Your job is to write a program that will read in a number of cities n and then determine the smallest integer m that will ensure that Ulm can surf the net while the rest of the country is cut off.
Input
The input will contain one or more lines, each line containing one integer n with 3 <= n < 150, representing the number of cities in the country.
Input is terminated by a value of zero (0) for n.
Input is terminated by a value of zero (0) for n.
Output
For each line of the input, print one line containing the integer m fulfilling the requirement specified above.
Sample Input
34567891011120
Sample Output
252431123816
//由于第一个城市必须去掉,所以就转化成N-1个城市的约瑟夫问题了
#include <cstdio>int fun(int n,int m){int s=0;for (int i=1;i<=n-1;i++){s=(s+m)%i;}return s;}int solve(int N){int i=2;while(i<1000){if(fun(N,i)==0) return i;++i;}}int main(){int n;while(scanf("%d",&n),n){printf("%d\n",solve(n));}return 0;}
0 0
- Eeny Meeny Moo 【 约瑟夫问题】
- [TOJ1133]Eeny Meeny Moo 约瑟夫问题
- Eeny Meeny Moo(约瑟夫环)
- POJ 2244 Eeny Meeny Moo 约瑟夫
- poj 2244 Eeny Meeny Moo 约瑟夫环
- Poj 2244 Eeny Meeny Moo (约瑟夫环)
- Eeny Meeny Moo(变相约瑟夫)
- uva440 - Eeny Meeny Moo约瑟夫环
- poj 2244 Eeny Meeny Moo 约瑟夫环
- poj 2244 Eeny Meeny Moo【约瑟夫环】
- bnuoj 1007Eeny Meeny Moo (约瑟夫环)
- 约瑟夫环-poj2244 - Eeny Meeny Moo
- pku2244 Eeny Meeny Moo
- poj2244 - Eeny Meeny Moo
- POJ2244"Eeny Meeny Moo"
- uva 440 Eeny Meeny Moo(约瑟夫环)
- POJ 2244 Eeny Meeny Moo
- poj 2244 Eeny Meeny Moo
- 二叉树按层遍历
- iOS开发50-iOS Mac OS X Spark的使用
- PopupWindow使用总结
- 旅游评论数据中的自然语言处理
- 【ITOO】--框架搭建
- Eeny Meeny Moo 【 约瑟夫问题】
- C++学习笔记30——反向迭代器
- 字符函数
- Fragment中得到Activity资源
- android Gson的使用
- 数组与指针定义字符串的区别(即char[]与char*)
- SSH连接问题
- Java常用开发工具
- Mac、CentOS jdk安装及版本切换