zoukankan      html  css  js  c++  java
  • 题目(4)答案

    经典的约瑟夫问题
    队列

    #include <iostream>
    #include <cstdio>
    #include <windows.h> 
    
    using namespace std;
    
    bool visit[10000000] = {0};//visit赋初始值
    
    int main()
    {
    	while(true){
        int n, s = 0;
    	scanf("%d", &n);
        for(int k = 0; k < n; k++)
        {//总共要出队n次
            for(int i = 0; i < 3; i++)
    		{
    			//1,0000,0000
    			if(++s > n)
    				s = 1;
    			if(visit[s])
    				i--;
    		}//类似取模,而因为序列是从1开始的,所以不取模,加判断;若visit过,则i--,使其继续循环
            visit[s] = true;//输出,记录已出队
        }
        printf("%d
    ", s);
        system("pause");
        system("cls");
    	}
        return 0;
    }
    
  • 相关阅读:
    迭代器和生成器
    装饰器
    函数进阶二
    函数进阶
    函数的初识
    python基础七
    python基础六
    python基础五
    python基础四
    python2与python3的区别
  • 原文地址:https://www.cnblogs.com/coding365/p/12872430.html
Copyright © 2011-2022 走看看