nyoj-278-排队

来源:互联网 发布:企查查怎么看数据 编辑:程序博客网 时间:2024/05/17 04:58

排队

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述
周末了,软件ACM的队员准备玩玩游戏,娱乐一下,CY想了一个好主意,所有队员站成一个圈,从1开始报数,凡是报出指定数字的人要出列,有人出列后,下个人重新从1开始报数。最后一位“幸存者”要给大家表演个节目。由于队员正在不断的壮大,C小加又想知道他是否需要准备表演,请你设计个程序,帮他确定他是否是“幸存者”。
输入
第一行是n,有n次游戏,第二行是m,x,表示某次游戏有m个人,指定被请出列的数字为x。其中n<100,m<1000
输出
最后幸存的那位的原来的号码
样例输入
210 56 4
样例输出
35
约瑟夫环,这是一个递推公式。
f[1]=0;
f[i]=(f[i-1]+m)%i; (i>1)
#include<iostream>using namespace std;int F(int m,int x){    if(m==1) return 0;    else return (F(m-1,x)+x)%m;}int main(){    int s,m,x;    cin>>s;    while(s--)    {        cin>>m>>x;        cout<<F(m,x)+1<<endl;    }    return 0;}


0 0