约瑟夫环

来源:互联网 发布:net编程语言 编辑:程序博客网 时间:2024/05/12 08:10
题目:约瑟夫环
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

int Josephus (int sum, int signal)
{
    if (sum <1 || signal < 1)
      return -1;

    intcall_off_times = 0;
    for (int i =2; i <= sum; i++)
      call_off_times = (call_off_times + signal) %i;

    returncall_off_times;
}

int main ()
{
    int n,m;
    cin >>n >> m;
    cout<< "We need call " << Josephus (n, m) << " times"<< endl;
    return0;
}
0 0