本文主要是介绍C,C++,python实现约瑟夫生者死者小游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
先看看题目:
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++;}}}}
}
运行结果展示:
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++;}}}}
}
运行结果展示:
用python实现
people = {}
for i in range(1,31):people[i] = 1check = 0
i = 1
j = 0
while i <= 31:if i == 31:i = 1elif j == 15:breakelse:if people[i] == 0:i += 1continueelse:check += 1if check == 9:people[i] = 0check = 0print("{}号下船了!".format(i))j+=1else:i+=1continue
运行结果:
通过上面示例,我们也看到每种语言各有特色!大家最喜欢哪一种语言呢?
这篇关于C,C++,python实现约瑟夫生者死者小游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!