【1018】选太子
来源:互联网 发布:网络运营商电话 编辑:程序博客网 时间:2024/04/27 16:07
描述:
某皇帝有2m个儿子,现在要从中选出一个做太子,皇帝不知道该把那一个皇子立为太子,于是决定用下面的方法来选出太子,设每个太子的编号分别1、2、3、…、2m,按顺时针方向站成一个圆圈,现在从1号太子开始按顺时针方向数,数到第n个人,把他淘汰出局,然后从他的下一个人开始上述过程,当第m个人被淘汰时,转变方向继续从1开始数,重复上述过程,最后剩下的皇子将被立为太子。现在请你写一个程序,计算出几号皇子将被立为太子。
输入:
输入两个正整数m n
Input two positive integer.
输出:
输出太子的编号
Output the number.
输入样例:
3 2
输出样例:
1
#include<iostream>using namespace std;int main(){int n,m,i,j=0,c=0,d;cin>>m>>n;int a[2*m];for(i=0;i<2*m;i++){a[i]=1;}j=-1;for(i=0;i<2*m;i=(i+1)%(2*m)){if(a[i]!=0){j=(j+1)%n;}if(j==n-1&&a[i]!=0){a[i]=0;c=c+1;}if(c==m){break;}}j=-1;for(i=i;i<2*m;i=i-1){if(a[i]!=0){j=(j+1)%n;}if(j==n-1&&a[i]!=0){a[i]=0;c=c+1;}if(c==2*m-1){break;}if(i==0){i=2*m;}}for(i=0;i<2*m;i=(i+1)%(2*m)){if(a[i]!=0){d=i+1;break;}}cout<<d<<endl;}
PS:这道题和幸运的编号两道题单步调试很多次,如果自己在纸上根据程序算的话会变得很麻烦
阅读全文
0 0
- NOJ 1018 选太子
- 【1018】选太子
- 选太子
- 选太子
- 选太子
- 选太子
- 选太子
- 选太子
- 选太子
- 约瑟夫之选太子
- 【king 选 太子 154】
- king 选太子
- king 选太子
- king 选 太子
- 154 king 选 太子
- NYOJ-king 选 太子
- king选太子
- king 选 太子
- android helloCharts 柱状图小结
- 我发起一个http url,本地没问题,发布到测试环境后,报错post 400 bad request,原来是测试的tomcat版本比较高,它对post的长度做了限制。
- Spring学习笔记
- html 符号
- H
- 【1018】选太子
- 如何判断网站是否使用了HTTP/2
- 对String字符串的一些处理
- [tensorflow] which dimension to reduce in tf.reduce_sum()
- iOS应用启动launchOptions字典中的key值
- 为本地开发搭建环境(英雄编辑器)
- Linux进程间通信——消息队列
- Android中工厂模式
- Java的LockSupport.park()实现分析