欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C,C++,python实现约瑟夫生者死者小游戏

程序员文章站 2022-03-26 10:28:35
先看看题目:30人在一条船上,超载,需要15人下船,于是人们排成了一队,排队的位置即为他们的编号,从第一个开始报数,从1数到9,数到9的人下船,如此循环往复,直到船上仅剩下15人为止,那么有哪些人下船呢?1.用C语言实现:#includeint c = 0;int i = 1;int j = 0;int a[30] = { 0 };int b[30] = { 0 };int main(){ while (i<=31) {...

先看看题目:
30人在一条船上,超载,需要15人下船,于是人们排成了一队,排队的位置即为他们的编号,从第一个开始报数,从1数到9,数到9的人下船,如此循环往复,直到船上仅剩下15人为止,那么有哪些人下船呢?
1.用C语言实现:

#include<stdio.h>

int c = 0;
int i = 1;
int j = 0;
int a[30] = { 0 };
int b[30] = { 0 };

int main()
{
    while (i<=31)
    {
        if (i == 31)
        {
            i = 1;
        }
        else if (c == 15)
        {
            break;
        }
        else
        {
            if (b[i] != 0)
            {
                i++;
                continue;
            }
            else
            {
                j++;
                if (j != 9)
                {
                    i++;
                    continue;
                }
                else
                {
                    b[i] = 1;
                    a[i] = j;
                    j = 0;
                    printf("第%d号下船了\n", i);
                    i++;
                    c++;
                }
            }
        }
    }
}

运行结果展示:
C,C++,python实现约瑟夫生者死者小游戏
2.用**C++**实现:

#include<iostream>
using namespace std;

int c = 0;
int i = 1;
int j = 0;
int a[30] = { 0 };
int b[30] = { 0 };

int main()
{
    while (i<=31)
    {
        if (i == 31)
        {
            i = 1;
        }
        else if (c == 15)
        {
            break;
        }
        else
        {
            if (b[i] != 0)
            {
                i++;
                continue;
            }
            else
            {
                j++;
                if (j != 9)
                {
                    i++;
                    continue;
                }
                else
                {
                    b[i] = 1;
                    a[i] = j;
                    j = 0;
                    cout<<"第%d号下船了\n"<< i;
                    i++;
                    c++;
                }
            }
        }
    }
}

运行结果展示:
C,C++,python实现约瑟夫生者死者小游戏
python实现

people = {}
for i in range(1,31):
    people[i] = 1

check = 0
i = 1
j = 0
while i <= 31:
    if i == 31:
        i = 1
    elif j == 15:
        break
    else:
        if people[i] == 0:
            i += 1
            continue
        else:
            check += 1
            if check == 9:
                people[i] = 0
                check = 0
                print("{}号下船了!".format(i))
                j+=1
            else:
                i+=1
                continue

运行结果:
C,C++,python实现约瑟夫生者死者小游戏
通过上面示例,我们也看到每种语言各有特色!大家最喜欢哪一种语言呢?

本文地址:https://blog.csdn.net/qq_44176343/article/details/110696491