zoukankan      html  css  js  c++  java
  • [YTU]_2018 ( 约瑟夫问题)

    Description

    n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。

    Input

    输入nm值。

    Output

    输出胜利者的编号。

    Sample Input

    5 3

    Sample Output

    4

    HINT

    第一轮:3被杀

    第二轮:1被杀

    第三轮:5被杀

    第四轮:2被杀


    #include <iostream>
    using namespace std;
    int main()
    {
        void s(int *,int i,int n,int m);
        int n,m,i,a[10000];
        cin>>n>>m;
        for(i=0;i<n;i++)
            a[i]=i+1;
            s(a,i,n,m);
        cout<<a[0]<<endl;
        return 0;
    }
    void s(int *p,int i,int n,int m)
    {
        int t,u;
            for(u=0;u<n-1;u++)
            {
                i=(i+m-1)%(n-u);
            for(t=i;t<n-u;t++)
            {
                p[t]=p[t+1];
            }
            }
    }
    
    

  • 相关阅读:
    常用模块的作业
    一些常用的模块
    软件开发的目录规范

    匿名函数作业
    模块
    算法,面向过程与匿名函数
    生成器表达式作业
    C. Perfect Keyboard
    C. Ehab and Path-etic MEXs
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586388.html
Copyright © 2011-2022 走看看