算法课上的一个小练习,线性结构的表示与实现之二-------顺序表的简单应用《约瑟夫生者死者游戏》

问题描述和求解思路在源码中已经注释出来了,进攻参考,后面的一份是一开始写的,效率极低,当做反面教材了。

#include<stdio.h>
/*约瑟夫问题求解——数组存储方式算法姓名:曹栋题目描述:约瑟夫生者死者游戏:30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉大家,只有将全船一半的旅客投入海中,其余人才能幸免遇难。无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人开始,依次报数,数到第9个人,就把他投入大海中,然后从他的下一个人开始从1数起,数到第9个人,再将她投入大海,如此循环,直到剩下15个人乘客为止。问哪些位置是将被扔到大海的位置。思路:规定数组30个元素值依次为1-30,跳水的元素置0;循环技术变量每经过一个非0值需要加1同时报数计数变量也加1,由于是循环计数,所以将number%30,如果经过0值时则需要只将number+1即跳过数组中的0元素,因为在报数时,已经跳水的人不再参与报数。报数变量count累加到9后即将对应的数组元素清零,同时status变量+1;
*/void main(){int status=0;//跳水人数变量int a[30];int i=0;int number=0;//循环计数变量,取值范围1~算法结束时总共数过多少人int count=0;//1-9报数变量//初始化数组for(i;i<30;i++)a[i]=i+1;//算法beginwhile(status<15){if(a[number%30]!=0){if(count==8){a[number%30]=0;number++;count=0;status++;printf("第%d次跳水的为%d\n",status,number%30);}else{count++;number++;}}elsenumber++;}//打印结果printf("留在船上的为:");for(i=0;i<30;i++)if(a[i]!=0)printf("%d,",a[i]);
}

下面是效率极低的一个算法

#include <stdio.h>
void main(){int a[30];int status=0;int number=1;int j=1;int k=1;int i=1;int q=1;for(j;j<=30;j++){a[j-1]=j; }while(status<15){while(i<9){while(a[(number-1)%30]==0){number++; }i++;number++;}i=1;while(a[(number-1)%30]==0){number++;    }a[(number-1)%30]=0;number++;status++;k=1;while(k<=30){printf("%d,",a[k-1]);k++;}printf("\n");}printf("over \n,");}

《约瑟夫生者死者游戏》算法 C语言版相关推荐

  1. Python版约瑟夫生者死者游戏

    Python版约瑟夫生者死者游戏(课设.小实验) 题目简介 算法思路(1循环,3判断) 流程图 参考代码(Python3,使用VS_Code编写) 题目简介 约瑟夫游戏的大意是:有30个旅客同乘一条船 ...

  2. 排队枪毙游戏c语言,基于C语言实现的约瑟夫生者死者游戏

    1 项目简介 约瑟夫生者死者游戏的大意是:30个旅客同乘一条船,因为严重超载,加上风高浪大危险万分:因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难.无奈,大家只得统一这种方法,并议 ...

  3. 约瑟夫生者死者游戏 数据结构作业

    题目1:约瑟夫生者死者游戏 实验类型(验证/设计/创新):设计 学时:10 课程设计内容: 有N个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分:因此船长告诉乘客,只有将全船一半的旅客投入海中, ...

  4. 数据结构课程设计:约瑟夫生者死者游戏(c++实现、单循环链表、输出死者姓名和编号、附可执行源代码)

    1.1设计内容: 有N个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分:因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难:无奈,大家只得同意这种办法,并议定N个人围成一圈,由第 ...

  5. 算法与数据结构——约瑟夫生者死者游戏

    一.概要设计 编写一个选择第9人进行杀死的函数,由两个循环嵌套,外循环计算总杀死人数,内循环计算第9人,返回人数为存活人数.其中要注意跳过数据域为空的头指针. 总函数中利用循环创建单循环链表,利用数组 ...

  6. 题目二:约瑟夫生者死者游戏

    约瑟夫游戏的大意:30 个游客同乘一条船,因为严重超载, 加上风浪大作,危险万分.因此船长告诉乘客,只有将全船 一半的旅客投入海中,其余人才能幸免于难.无奈,大家只 得同意这种办法,并议定 30 个人 ...

  7. 约瑟夫生者死者游戏:有N个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难;无奈,大家只得同意这种办法,并议定N个人围成一圈,由

    目录 1.实验题目 2.实验目的 3.概要设计 3.1 问题分析 3.2 流程图 3.3 功能模块

  8. 约瑟夫生死者游戏实验报告c语言,约瑟夫生死游戏(C++)数据结构实现.docx

    .. 题目二: 约瑟夫生者死者游戏(链表存储) 一:[内容与要求] 约瑟夫游戏的大意是:每30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分:因此船长告诉乘客,只有将全船一半的旅客投入还中,其 ...

  9. 约瑟夫生者死者小游戏

    今天看菜鸟教程的一个python小练习,约瑟夫生者死者小游戏L:规则如下: # 30 个人在一条船上,超载,需要 15 人下船. # 于是人们排成一队,排队的位置即为他们的编号. # 报数,从 1 开 ...

最新文章

  1. python文本的平均列数_文本的平均列数(Python程序实现)
  2. 简单解决“ORA-27100: shared memory realm already exists”的问题
  3. Web 自动化神器,批量下载美图,可直接导入使用
  4. Omni Recover for Mac版 - 一站式iPhone数据恢复
  5. python查看运行内存占用_python中使用psutil查看内存占用的情况
  6. oracle的错误代码如何查看对应的错误信息
  7. 线性搜索c语言,线性搜索实例程序(C语言)
  8. 输入某年某月某日,Java判断这一天是这一年的第几天?
  9. 第五章 shell学习之文件的排序、合并和分割
  10. docker 安装portainer、gogs、redis、mongodb、es、rabbitmq、mysql、jenkins、harbor
  11. mac原生壁纸,拿走不谢!
  12. 七夕甜蜜限定,让你心动不止一点点~
  13. c++智能指针简单使用
  14. 客户流失的原因及解决办法
  15. 微信兵锋所向 阿里必将血流成河
  16. 一体化运维平台规划介绍
  17. My SQL的安装与卸载
  18. nginx+php https 实践
  19. 高效时间管理工具之四象限法则
  20. 荣耀x10支持鸿蒙,还好没放弃!一大批荣耀支持鸿蒙,这35款机型有份

热门文章

  1. 新手入门案例学习,基于C# MVC实现汽修管理系统《建议收藏:附完整源码+数据库》
  2. 动态 SQL 你还敢用?
  3. [附源码]Nodejs计算机毕业设计明天摄影工作室Express(程序+LW)
  4. GHOST 所有参数大全
  5. hdu 5246 超级赛亚ACMer
  6. 微信公众号开发之现金红包
  7. 有关军旅人生励志语录
  8. gaxlxy nexus遭遇不断重启
  9. 【原创】:做独立网站和网店的实战营销秘笈 (二)
  10. VUE jQuery+VUE带实时节气创意圆形罗盘时钟动画特效