本文主要是介绍51Nod_1073 约瑟夫环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
51Nod_1073 约瑟夫环
http://www.51nod.com/Challenge/Problem.html#!#problemId=1073
题目
N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。
输入
2个数N和K,表示N个人,数到K出列。(2 <= N, K <= 10^6)
输出
最后剩下的人的编号
样例输入
3 2
样例输出
3
分析
公式题
C++程序
#include<iostream>using namespace std;int main()
{int n,k,ans=0;cin>>n>>k;for(int i=2;i<=n;i++)ans=(ans+k)%i;cout<<ans+1<<endl;return 0;
}
这篇关于51Nod_1073 约瑟夫环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!