news 2026/7/7 19:31:51

C语言之约瑟夫问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言之约瑟夫问题

首先,编写一个程序,对m个人进行一次计数,即排成一行。如果达到出列要求,则重新计时。最后输出出列者的编号。

#include<stdio.h> int main() { int m,n,i,k; scanf("%d%d",&m,&n); int f[m];//该数组有m个元素,代表m个人的编号 for(i=0;i<m;i++){ f[i]=i+1;//存储每个人的编号 } k=0;//计数器清0 i=0;//从第一个人开始计数 while(i<m){//因为i的取值从0到m-1 k++;从第一个人开始数 if(k==n){//满足出列条件 printf("%-5d",f[i]);//输出出列者编号 k=0;//计数器复位,重新开始+1计数,再碰到符合出列数字的人出列。 } i++;//人的编号也要持续+1,且不用重置 } return 0; }

约瑟夫环是实现对m个人的循环计数,即数完第m个人后,重新回到第一个人继续计数,从而模拟m个人围成一圈的效果。

即实现约瑟夫环的关键是如何在计数完m个人后回到第1个人。即把i的条件变成i=(i+1)%m,能写出上述公式是因为要在i=m-2之前仍然是i++的效果,即余数为除数。但当i=m-1时,即最后一个人数完后,重新回到第1个人继续循环,即i变成0。但运行之后会发现,会无限循环,因为i的范围总是满足循环条件。所以要修改循环条件,最后剩余不足一个人时,即是循环结束的点。所以需要再定义一个变量是剩余人数。

同时,不要忘了把已经出列的人去掉。

#include<stdio.h> int main() { int m,n,i,k,c; scanf("%d%d",&m,&n); int f[m];//该数组有m个元素,代表m个人的编号 for(i=0;i<m;i++){ f[i]=i+1;//存储每个人的编号 } c=m; k=0;//计数器清0 i=0;//从第一个人开始计数 while(c>0){//因为i的取值从0到m-1 if(f[i]!=0){//再从下一个人开始计数时,就把已经出列的人排除即不数上。 k++; } if(k==n){ printf("%-5d",f[i]); f[i]=0;//出列的人序号清除 c--; k=0;//计数器复位,重新开始+1计数,再碰到符合出列数字的人出列。但这里唯一的问题是应该将已经出列的人排除再重新开始计数,即返回到第一个人。 } i=(i+1)%m; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 16:39:13

类变量和实例变量的命名规范是什么?

在 Python 中&#xff0c;类变量和实例变量的命名没有强制的语法约束&#xff08;不像关键字&#xff09;&#xff0c;但遵循PEP 8 规范和行业通用惯例能极大提升代码可读性&#xff0c;核心原则是「清晰区分变量归属、符合 Python 命名风格」。下面分两类变量讲透命名规范&…

作者头像 李华
网站建设 2026/7/6 22:46:28

东南大学论文模板终极配置指南:从入门到精通

东南大学论文模板项目为东大学子提供了一站式的学术论文排版解决方案。无论您是本科、硕士还是博士阶段的学生&#xff0c;这个精心设计的模板库都能帮助您快速完成符合学校规范的论文格式设置&#xff0c;让您专注于内容创作而非格式调整。 【免费下载链接】SEUThesis 项目…

作者头像 李华
网站建设 2026/7/7 12:41:08

LobeChat与LangChain结合使用指南:构建更强大的AI应用

LobeChat与LangChain结合使用指南&#xff1a;构建更强大的AI应用 在今天&#xff0c;越来越多的开发者不再满足于“调用API返回文本”的简单AI应用。他们希望构建真正智能、可交互、能行动的AI助手——不仅能聊天&#xff0c;还能查资料、算数据、读文件、执行任务。但问题也随…

作者头像 李华
网站建设 2026/7/7 14:53:07

LobeChat转化率优化建议

LobeChat 转化率优化建议 在大语言模型&#xff08;LLM&#xff09;技术迅速普及的今天&#xff0c;用户早已不再满足于“能用”的AI工具——他们需要的是真正好用、顺手、值得长期依赖的智能助手。一个再强大的模型&#xff0c;如果交互界面笨拙、响应迟缓或功能单一&#xff…

作者头像 李华
网站建设 2026/7/7 2:34:46

LobeChat技术创新路线图生成

LobeChat&#xff1a;构建可扩展AI交互平台的技术实践 在大语言模型&#xff08;LLM&#xff09;能力飞速演进的今天&#xff0c;一个关键问题逐渐浮现&#xff1a;如何让强大的AI真正“可用”&#xff1f;不是仅限于研究实验室或闭源API调用&#xff0c;而是能被开发者自由定…

作者头像 李华
网站建设 2026/7/7 9:16:00

BetterNCM插件管理器完整指南:从零配置到高阶应用

BetterNCM插件管理器完整指南&#xff1a;从零配置到高阶应用 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM作为网易云音乐的强大插件扩展平台&#xff0c;能够彻底改变你的…

作者头像 李华