博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
约瑟夫问题
阅读量:6789 次
发布时间:2019-06-26

本文共 1183 字,大约阅读时间需要 3 分钟。

总时间限制: 
1000ms
内存限制: 
65536kB
描述
约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。
输入
每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:
0 0
输出
对于每行输入数据(最后一行除外),输出数据也是一行,即最后猴王的编号
样例输入
6 2
12 4
8 3
0 0
样例输出
5
1
7
  既然这题的归类是链表与指针,那首先就是用链表模拟啦,注意特殊情况如 N=1,M=1 
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int next[3000]; 9 int last[3000];10 bool vis[3000];11 int N,M;12 int now;13 int num;14 int cnt;15 bool jud;16 int main(){17 for(;;){18 memset(next,0,sizeof(next));19 memset(last,0,sizeof(last));20 memset(vis,false,sizeof(vis));21 scanf("%d%d",&N,&M);22 if(N==1){23 cout<<1<

  还可以:

1 #include
2 using namespace std; 3 int a[301]; 4 int main(){ 5 int n,m; 6 while(1){ 7 cin>>n>>m; 8 if(m==0&&n==0) return 0; 9 a[1]=0;10 for(int i=2;i<=n;i++){11 a[i]=(a[i-1]+m)%i;12 }13 cout<
<

 

 

转载于:https://www.cnblogs.com/CXCXCXC/p/4905972.html

你可能感兴趣的文章
Exchange日常管理之二隐藏用户在通讯录中的显示
查看>>
使用escalations限制Nagios报警次数
查看>>
innobackupex 备份 Xtrabackup 增量备份
查看>>
VMware View Client for iPAD、Android发布了!
查看>>
桌面虚拟化之存储加速功能
查看>>
ArgoUML -- 开源UML 建模工具
查看>>
工作中的心态
查看>>
asp.net使用mscharts生成图表
查看>>
我的友情链接
查看>>
TCP三次握手和四次挥手过程分析
查看>>
进程外Session和进程内Session存储
查看>>
(素材_源码) 猫猫学IOS(五)UI之360等下载管理器九宫格UI
查看>>
系列超声发现脊柱关节炎附着点处新骨形成
查看>>
【模板】RMQ问题—st表实现
查看>>
数据指标体系建立
查看>>
Golang 笔记 4 defer、error、panic
查看>>
感冒休息
查看>>
linux命令学习——ps
查看>>
PHP下CKeditor 在线编辑器的使用
查看>>
帝国CMS跳过选择会员类型直接注册方法
查看>>