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}
  • 相关阅读:
    I.MX6 Surfaceflinger 机制
    理解 Android Fragment
    RPi 2B DDNS 动态域名
    RPi 2B IPC webcam server
    理解 Android MVP 开发模式
    I.MX6 system.img unpack repack
    can't set android permissions
    VMware Ubuntu 共享文件夹
    解决oracle数据库连接不上的问题
    perfect-scrollbar示例
  • 原文地址:https://www.cnblogs.com/yuxi/p/645370.html
Copyright © 2011-2022 走看看