zoukankan      html  css  js  c++  java
  • 求解约瑟夫问题

     1/*
     2求解约瑟夫问题:n个猴子要选大王,方法是:所有猴子安1,2,,n编号围坐一圈,
     3从第一号开始报数,凡报到m号的退出圈外,如此循环报数,直到圈内剩下一只猴子(大王)
     4*/

     5
     6#include "stdafx.h"
     7#include <stdio.h>
     8#define n 10  //猴子的数量
     9#define m 4   //报到m号的退出圈外
    10
    11void main()
    12{
    13    int a[n],i,count=0,n1=0//a[n]猴子的数量
    14
    15    printf("出队前:");
    16    for(i=0;i<n;i++)
    17    {
    18        a[i]=i+1;
    19        printf("%d ",a[i]);
    20    }

    21
    22    printf("\n出队后:");
    23
    24    while(n1<n) //n1用来计算退出到圈外的猴子个数
    25    {
    26        for(i=0;i<n;i++)
    27        {
    28            if(a[i]!=0)  //没有退出到圈外的猴子报数
    29                count++//报数 
    30            if(count==m) //报到m号的猴子退出
    31            {
    32                printf("%d ",a[i]);
    33                a[i]=0;  //报到m号的猴子退出,即设定a[i]=0
    34                count=0//重新报号
    35                n1++;    //有一个猴子退出
    36            }

    37        }

    38    }

    39
    40}
  • 相关阅读:
    如何查找并启动 Reporting Services 工具
    数据压缩技术
    压缩算法
    新版压缩库发布
    如何处理海量数据
    安卓手机获得Root权限
    安卓项目的源码
    压缩算法1
    ODBC, OLEDB, ADO, ADO.Net的演化简史
    C# 文件压缩与解压(ZIP格式)
  • 原文地址:https://www.cnblogs.com/yuxi/p/645370.html
Copyright © 2011-2022 走看看