有没有人看看怎么做😭,我的在VS2022可以编译成功,但是在有的变压器成功不了,怎么办
1条回答 默认 最新
- 一轮明月照丘壑 2024-09-13 19:35关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
要解决这个约瑟夫问题,我们可以通过实现一个循环来遍历所有的人,并根据给定的规则进行处理。下面是一种可能的实现方式:
#include<iostream> using namespace std; void josephus(int n, int k, int m) { // 准备数组存储当前的人数 int people[n]; for (int i = 0; i < n; ++i) { people[i] = i + 1; } while (true) { // 每次循环都更新当前的人数 for (int i = 0; i < n - 1; ++i) { if (people[i] % m != 0) { people[i]++; } } // 输出当前的人数序列 for (int i = 0; i < n; ++i) { cout << people[i] << " "; } cout << endl; // 判断是否到达终点 if (people[n-1] >= n) { break; } } } int main() { int n, k, m; cin >> n >> k >> m; josephus(n, k, m); return 0; }
这段代码首先定义了一个名为
josephus
的函数,它接受三个参数:总人数n
,起始位置k
,以及结束位置m
。函数内部,我们初始化一个长度为n
的数组people
,并将每个人的初始位置设置为其编号加1。接下来,我们通过一个无限循环来迭代所有的元素。在每次迭代中,我们都检查当前的人数是否能被
m
整除。如果是,则将当前的人数增加1。这样做的目的是确保每个人都会按顺序报数,并且当某个人在报完数后,会轮到下一个人在其后面报数。当满足条件时,我们将当前的人数打印出来,并判断是否已经到了最后一个位置。如果不是,就再次调用
josephus
函数。否则,我们就跳出循环,程序结束。在这个示例中,我们没有使用任何特定的编程语言或环境,而是展示了基本的算法思想。如果你有特定的编程环境或者想要尝试其他编程语言,可以根据实际情况调整代码。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见