zoukankan      html  css  js  c++  java
  • POJ 3517 And Then There Was One( 约瑟夫环模板 )


    **链接:****传送门 **

    题意:典型约瑟夫环问题

    约瑟夫环模板题:n个人( 编号 1~n )在一个圆上,先去掉第m个人,然后从m+1开始报1,报到k的人退出,剩下的人继续从1开始报数,求最后剩的人编号


    /*************************************************************************
        > File Name: poj3517.cpp
        > Author:    WArobot 
        > Blog:      http://www.cnblogs.com/WArobot/ 
        > Created Time: 2017年05月10日 星期三 14时49分41秒
     ************************************************************************/
    
    #include<cstdio>
    using namespace std;
    
    int Joseph(int n,int k,int m){
    	int d , s = 0;
    	for(int i = 2 ; i<= n ; i++)	s = ( s + k ) % i;
    	k %= n;
    	if( k == 0 )	k = n;
    	d = ( s + 1 ) + ( m - k );
    	if( d >= 1 && d <= n )	return d;
    	else if( d < 1 )		return d + n;
    	else if( d > n )		return d % n;
    }
    int main(){
    	int n,k,m;
    	while(~scanf("%d%d%d",&n,&k,&m) , n||k||m ){
    		printf("%d
    ",Joseph(n,k,m));
    	}
    	return 0;
    }
  • 相关阅读:
    第六周进度条
    团队开发需求分析视频连接
    敏捷开发综述
    数组2--数组首尾相接,求最大子数组
    数组1--求一个数的最大子数组
    第四周进度条
    四则运算3
    第三周进度条
    第二周进度条
    单元测试
  • 原文地址:https://www.cnblogs.com/WArobot/p/6836360.html
Copyright © 2011-2022 走看看