百练--2746--约瑟夫问题

来源:互联网 发布:个人如何成为淘宝卖家 编辑:程序博客网 时间:2024/06/06 04:48

2746:约瑟夫问题

  • 查看
  • 提交
  • 统计
  • 提示
  • 提问
总时间限制:
1000ms
内存限制:
65536kB
描述
约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。

输入
每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:

0 0

输出
对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号
样例输入
6 212 48 30 0
样例输出
517
 

 

//#include <iostream>#include <stdio.h>#include <stdlib.h>//using namespace std;struct node {int num;node * next;};void initqueen(int n,node * queen){int i;node *r,*s;r=s=queen;for(i=2;i<=n;i++)//2到 n结点{s = (node *)malloc(sizeof(node));s->num = i;s->next = NULL;r->next = s;r = s;//printf("r=%d\n",r->num);}//printf("r=%d\n",r->num);r->next = queen;//最 后  一 个 结  点 指 向 头 结点,形成 循 环 队列}int solve(int n,int m,node * queen){int i,j;node *s;node *p = queen;//printf("q = %d\n",queen->num);s = p;for(i=1;i<n;i++){//printf("p=%d\n",p->num);for(j=1;j<m;j++){s = p;p=p->next;//s = p;}//printf("*p=%d\n",p->num);s->next = p->next;free(p);p = s->next;}return p->num;}int main(){ int m,n;node * queen; while(scanf("%d%d",&n,&m),n&&m)//scanf("%d%d",&n,&m)&& n||m也对  { //printf("n=%d,m=%d\n",n,m); if(n==1) {printf("1\n");continue; }if(m==1){printf("%d\n",n); continue;}queen = (node *)malloc(sizeof(node)); //第一个结点queen->num = 1;queen->next = NULL; initqueen(n,queen); printf("%d\n",solve(n,m,queen));   } return 0;}



 

 

精简版:

#include <stdio.h>int main(){  int n, m, i, s=0;  while(scanf("%d%d", &n, &m),n&&m)  {    s=0;    for (i=2; i<=n; i++){    s=(s+m)%i;    }     printf ("%d\n", s+1);  }  return 0; }


 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 日本suica卡丢了怎么办 日本地铁卡丢了怎么办 极光卡五星老输怎么办 皮秒留下的色沉怎么办 鼻综合鼻内增生怎么办 做完鼻综合脸肿怎么办 上海车子卖了etc怎么办 车卖了etc设备怎么办 车卖了etc没摘怎么办 交通信息卡丢了怎么办 多囊卵巢无排卵怎么办 卵巢腹镜手术后一直出汗怎么办 双侧卵巢多囊怎么办 备孕子宫内膜厚怎么办 有成熟卵泡不破怎么办 卵泡不排萎缩了怎么办 卵泡8mm一直不长怎么办 卵泡已经长到28x19mm怎么办 多囊卵巢卵泡长不大怎么办 优势卵泡19不排怎么办 多囊卵泡不排卵怎么办 卵泡两天长2mm怎么办 子宫小43*38*26怎么办 优势卵泡打破卵针后并不破怎么办 ktv禁止自带酒水怎么办 记名西瓜卡丢了怎么办 日本电车卡丢了怎么办 网贷暂时没钱还怎么办 华泰倒闭了汽车怎么办 猫躲起来找不到了怎么办 狗生病了不吃饭怎么办 猫猫托运后害怕怎么办 新来的猫害怕怎么办 升工资老板不公平对待怎么办 自酿啤酒苦味重怎么办 自酿啤酒酸味重怎么办 微信电话费充错了怎么办 支付宝电话费充错了怎么办 在淘宝上充错电话费了怎么办 话费1000充错了怎么办 东西掉在地铁上怎么办