当前位置: 首页 > news >正文

手机钓鱼网站生成器搜索引擎优化排名案例

手机钓鱼网站生成器,搜索引擎优化排名案例,东莞便宜做网站,网站建设的知识产权归属创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c语言系列专栏:c语言之路重点知识整合 🔥
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

链表有关知识点:【c语言】链表

题目:

约瑟夫问题

据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后, 39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus和他的朋友并不想遵从。

首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。接着,再越过k-1个人,并杀掉第k个人。这个过程沿着圆圈一直进行,直到最终只剩下一个人留下,这个人就可以继续活着。问题是,给定了和,一开始要站在什么地方才能避免被处决。

Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个第31个位置,于是逃过了这场死亡游戏。

数组方法:【c语言习题】使用数组解决约瑟夫问题


约瑟夫问题 目录

  • 题目:
  • 过程分析:
  • 淘汰过程图解
  • 完整代码:
  • 结果:

过程分析:

定义链表节点类型Node,包含两个域:data和指向下一个节点的指针next。

typedef struct node //定义链表 节点
{int data;struct node* next;
}Node;

定义函数void fun(int n, int m),参数n为总人数,m为报数出局的数字

void fun(int n, int m)  //总共有n个人,报数为m的人出局 

初始化循环链表:

创建头结点head
head->data赋值为1
head->next赋值为NULL

然后用p和q两个指针完成插入操作,让p指向headq表示新插入的节点

	//初始化循环链表Node* head = NULL;	//头节点head = malloc(sizeof(Node));  head->data = 1;       //起始编号head->next = NULL;    Node* p = head;Node* q = NULL;

尾插法创建链表并构造循环链表:

从2开始遍历创建剩下的N-1个结点,每个结点依次插入到链表的尾部,即将p->next=r; q=p;
最后将最后一个节点p的next指针指向头节点head,完成循环链表的构建

for (int i = 2; i <= n; i++)//创建链表的n-1个节点{q = malloc(sizeof(Node));q->data = i;q->next = NULL;p->next = q;//插入节点p = q;}p->next = head;   //最后一个节点的next指向头节点p = head;  //记录头节点      

找到需要淘汰的节点:

计数器m每次加一,同时移动p指针,当m变成选定的淘汰数字时,
保留p指针位置(即将要淘汰的同学的位置),然后将p指向下一个同学
将淘汰同学输出,并将p指向下一个同学继续报数

while (p->next != p)  //链表中只剩下最后一个节点{for (int i = 1; i < m; i++)  //报数为m出局 {q = p;   //通过临时指针保存所对应节点的前一个节点的地址,最终找到需要删除的节点p,并输出节点datap = p->next; }printf("%d ", p->data);q->next = p->next;p = p->next;  //重置p重新报数}

当只有一个节点时,结束淘汰循环

printf("%d\n", p->data);printf("存活最后的%d位\n", m-1);free(q);free(head);q = NULL;head = NULL;

淘汰过程图解

在这里插入图片描述

完整代码:

#include <stdio.h>
typedef struct node //定义链表 节点
{int data;struct node* next;
}Node;void fun(int n, int m)  //总共有n个人,报数字为m的人出局 
{//初始化循环链表Node* head = NULL;	//头节点head = malloc(sizeof(Node));  head->data = 1;       //起始编号head->next = NULL;    Node* p = head;Node* q = NULL;for (int i = 2; i <= n; i++)//创建链表的n-1个节点{q = malloc(sizeof(Node));q->data = i;q->next = NULL;p->next = q;//插入节点p = q;}p->next = head;   //最后一个节点的next指向头节点p = head;  //记录头节点      while (p->next != p)  //链表中只剩下最后一个节点{for (int i = 1; i < m; i++)  //报数为m出局 {q = p;   //通过临时指针保存所对应节点的前一个节点的地址,最终找到需要删除的节点p,并输出节点datap = p->next; }printf("%d ", p->data);q->next = p->next;p = p->next;  //重置p重新报数}printf("%d\n", p->data);printf("存活最后的%d位\n", m-1);free(q);free(head);q = NULL;head = NULL;
}int main()
{int n, m;printf("请输入总人数:");scanf_s("%d", &n);printf("请输入报数的数字:");scanf_s("%d", &m);fun(n, m);system("pause");return 0;
}

结果:

在这里插入图片描述


在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)
http://www.yidumall.com/news/72517.html

相关文章:

  • 网游大型游戏排行榜太原seo培训
  • 南京凯盛建设集团有限公司网站百度seo引流
  • web记事本做网站怎么改变字的颜色营销广告文案
  • 网站建设需要什么材料百度自助建站官网
  • 电商网站 开发周期邯郸网站优化
  • 交网站建设域名计入什么科目网站优化设计的基础是网站基本要素及每个细节的优化
  • 南阳专业做网站公司哪家好百度竞价推广方案
  • 专门做中式服装平台的网站seo整站优化公司持续监控
  • 怎么做网站背景图片上海网站营销seo电话
  • 免费建站系统下载网络优化工程师吃香吗
  • crm客户管理系统方案seo网站结构优化的方法
  • 西宁网站建设制作公司推广普通话手抄报一等奖
  • 建个人网站怎么赚钱互联网推广话术
  • 大连seo网站整站优化快速排名
  • 专业的网站建设电话新塘网站seo优化
  • 网站备案照相怎么照大数据分析网站
  • 网站设计学什么专业推广网站有效的免费方法
  • 网站单个页面301跳转制作网站代码
  • 网站开发怎么接入支付宝今天重大新闻
  • 做照片有那些网站好营销网站建设哪家快
  • 杭州商城网站建设1688关键词排名查询工具
  • 药品网站网络营销推广怎么做免费广告发布平台
  • 网站大图做多大尺寸新闻稿发布
  • 做海报用什么网站网络营销渠道有哪三类
  • 如何做网站渗透测试谷歌浏览器在线打开
  • 做图片祝福的网站福建搜索引擎优化
  • 德持建设集团有限公司网站网络推广怎么找客户资源
  • 网站建设只有20%的利润网络广告形式
  • 兄弟网站建设沈阳关键词优化费用
  • 惠州网站建设网站线上推广方式