Eeny Meeny Moo

Time Limit: 1000ms
Memory Limit: 65535KB           
        
大家都有这种经验,当太多的人同时使用互联网的时候,网络会变得非常,非常缓慢。为了结决这一问题,北师大制定了一项应急计划,在网络使用高峰期切断一些连接以保证网络的畅通。所有的网络连接都将被标号(从1开始,依次是2号,3号……)。当应急计划启动的时候,首先切断1号连接,然后切断1号之后的第M个连接,在然后是上一个被切断之后的第M个连接,以此类推。例如,如果有17个连接,并且M=5,则依次切断的顺序为[1,6,11,16,5,12,2,9,17,10,4,15,14,3,8,13,7]。DXY同学大公无私地将自己的机器设置为1连接,而ZSL同学的机器为2号连接。原本这种切断连接的方式是很公平的,不过ZSL同学想要知道当M为多少时,他的机器会被最后一个切断连接(他果然很不厚道)。

 

Input

输入不止一行,每一行都只有一个无符号整数N,且 3 <= n < 150。当输入0的时候程序退出。

 

Output

对于每一行的输入,输出一个最小的值M,满足ZSL同学的2号连接会被最后一个切断。

 

Sample Input

3
4
5
6
7
8
9
10
11
12
0

Sample Output

2
5
2
4
3
11
2
3
8
16
  • //第一个人总是最先被删除的。因此可以把该问题看成是n-1个人的问题,
  • //希望最后问题中最原始的2留下来,找这个递增的m
#include<stdio.h>
#include<string.h>
#include<math.h> int call(int n,int m)
{
int i,s=;
for(i=;i<=n-;i++)
{
s=(s+m)%i;
//如果s从1开始,则(s+m-1)%i+1  
}
return s;
}
int main()
{
int n,i;
while(scanf("%d",&n),n)
{
if(n==)
break;
for(i=;;i++)
{
if(call(n,i)==)
{

//编号为1的城市已经出列,所以第二座城市现在编号为1,但递推式的第一个值为0  
printf("%d\n",i);
break;
}
}
}
return ;
}

这题还是不懂啊    啊     啊   。。。。。

最新文章

  1. 一定要在主线程更新UI
  2. pingpang ball
  3. Microsoft SQL Server
  4. mysql修改主键
  5. iOS 仪表式数字跳动动画-b
  6. Day1 初识Python
  7. WinForm实现窗体最小化后小图标在右边任务栏下
  8. Oracle的实例占用内存调整
  9. angularjs下拉框实现渲染html
  10. PHP开发者必须了解的9个魔术方法
  11. UVA - 12050-Palindrome Numbers
  12. docker网络
  13. git 入门教程之版本管理
  14. Java知多少(79)哈希表及其应用
  15. [knowledge][perl][pcre][sed] sed / PCRE 语法/正则表达式
  16. linux多行注释
  17. windows下gcc的安装
  18. yaf路由配置规则
  19. jQuery给控件赋值....
  20. 关于iframe里的子页面如何调取父级页面里的事件(子调父)

热门文章

  1. apache配置多域名
  2. 计数器:counter
  3. jeecms标签
  4. vue $parent 的上一级 有可能不是父组件,需要好几层$parent 如果这样 还不如用 this.$emit
  5. C ++ _多线程笔记
  6. OpenCV2:第四章 导出图像
  7. Yii1 获取当前请求的url
  8. 如何用纯 CSS 创作一种有削铁如泥感觉的菜单导航特效
  9. CSS3---关于文本
  10. Java:获取文件内容