956: 约瑟夫问题的实现

news2024/10/8 23:01:39

【学习版】

【C语言】

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;
typedef struct Lnode {
    int date;
    struct Lnode* next;
}Lnode, * Linklist;
int In(Linklist& L) {
    L = new Lnode;
    L->next = NULL;
    return 0;
}
void Cl(Linklist& L, int n) {
    Lnode* r = L;
    for (int i = 1; i <= n; i++) {
        Lnode* p = new Lnode;
        p->date = i;
        p->next = NULL;
        r->next = p;
        r = p;
    }
    r->next = L->next;

}
int main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);

    int n, m, count = 0;
    Linklist A;
    In(A);
    cin >> n;
    Cl(A, n);
    cin >> m;
    Lnode* p = A;
    while (n > 1) {
        if (count == m) {
            Lnode* q = p->next;
            p->next = q->next;
            delete q;
            count = 0;
            n--;
        }
        else {
            for (int i = 1; i < m; i++) {
                p = p->next;
            }
            count = m;
        }
    }
    cout << p->next->date;
    return 0;
}

【C++】

#include<iostream>

struct LinkedNode {
	int val;
	LinkedNode* next;
	LinkedNode(int x) :val(x), next(nullptr) {};
};
void initList(LinkedNode* list,int n) {
	LinkedNode* cur = list;
	for (int i = 1; i <= n; i++) {
		LinkedNode* newNode = new LinkedNode(i);
		cur->next = newNode;
		cur = cur->next;
	}
	cur->next = list->next;
}
void deleteList(LinkedNode* list, int n,int k) {
	LinkedNode* cur = list;
	while (n > 1) {
		for (int i = 0; i < k-1; i++) {
			cur = cur->next;
		}
		LinkedNode* tmp = cur->next;
		cur->next = cur->next->next;
		delete tmp;
		n--;
	}
	std::cout << cur->val;
}
int main() {
	LinkedNode* list = new LinkedNode(0);
	int n, k;
	std::cin >> n >> k;
	initList(list, n);
	deleteList(list, n, k);
	return 0;
}

【STL】

#include<iostream>
#include<vector>

int main() {

	int n, k;
	std::cin >> n >> k;
	std::vector<int> vec(n);
	for (int i = 0; i < n; i++) vec[i] = i + 1;
	int cur = 0;
	while (vec.size() > 1) {
		cur = (cur + k -1) % vec.size();
		vec.erase(vec.begin() + cur);
	}
	std::cout << vec[0];
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1568640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《数据结构学习笔记---第十篇》--- 堆堆排序(超详细图解)

目录 1.堆是什么? 2.问题引入&#xff1a;当我们插入一个新的元素时&#xff0c;那么他还是堆吗。 3.堆的元素插入 4.问题引入&#xff1a;当我们删除一个堆顶元素时&#xff0c;我们又该如何调整呢&#xff1f; 5.堆顶元素删除 6.如何建堆&#xff1f; 6.1向上调整建堆…

面试算法-140-接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2…

网络编程(TCP、UDP)

文章目录 一、概念1.1 什么是网络编程1.2 网络编程中的基本知识 二、Socket套接字2.1 概念及分类2.2 TCP VS UDP2.3 通信模型2.4 接口方法UDP数据报套接字编程TCP流套接字编程 三、代码示例3.1 注意点3.2 回显服务器基于UDP基于TCP 一、概念 首先介绍了什么是网络编程&#xff…

大模型量化技术-GPTQ

大模型量化技术-GPTQ 2022年,Frantar等人发表了论文 GPTQ:Accurate Post-Training Quantization for Generative Pre-trained Transformers。 这篇论文详细介绍了一种训练后量化算法,适用于所有通用的预训练 Transformer模型,同时只有微小的性能下降。 GPTQ算法需要通过…

Autodesk Maya 2025 Multilanguage (macOS, Linux, Windows) - 三维动画和视觉特效软件

Autodesk Maya 2025 Multilanguage (macOS, Linux, Windows) - 三维动画和视觉特效软件 三维计算机动画、建模、仿真和渲染软件 请访问原文链接&#xff1a;https://sysin.org/blog/autodesk-maya/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&a…

‘cv2’、PIL、torch、torchivision

运行环境安装失败集 1、 ModuleNotFoundError: No module named ‘cv2’No module named ‘cv2’ opencv-python PEP517 ERROR2、ModuleNotFoundError: No module named PIL3、torch、torchvision安装 1、 ModuleNotFoundError: No module named ‘cv2’ No module named ‘cv…

基于SSM的社区疫情防控管理信息系统

目录 背景 技术简介 系统简介 界面预览 背景 随着时代的进步&#xff0c;计算机技术已经全方位地影响了社会的发展。随着居民生活质量的持续上升&#xff0c;人们对社区疫情防控管理信息系统的期望和要求也在同步增长。在社区疫情防控日益受到广泛关注的背景下&#xff0c…

JAVAEE——文件IO

文章目录 文件的概念什么是文件&#xff1f;树型结构组织 和 目录文件路径相对路径绝对路径 文件的分类文件的权限 文件读写IO API字符流操作API 警告字节流操作APIInputStreamOutputStream 文件的概念 什么是文件&#xff1f; 我们先来理解一下什么是文件&#xff0c;那么想…

四川尚熠电子商务有限公司靠谱吗?怎么样?

在当下数字化浪潮中&#xff0c;电子商务行业正以前所未有的速度蓬勃发展。四川尚熠电子商务有限公司&#xff0c;作为专注于抖音电商服务的企业&#xff0c;凭借其敏锐的市场洞察力和创新精神&#xff0c;正成为行业内的佼佼者&#xff0c;为众多品牌打开抖音电商市场的大门。…

[技术闲聊]我对电路设计的理解(三)

终于可以独立做项目了&#xff0c;是不是很激动&#xff0c;是不是为自己骄傲和自豪&#xff0c;应该的&#xff0c;奋斗那么久不就是为了站在山巅看看四周的风景嘛&#xff01; 虽说山外还有山&#xff0c;但是此刻就在脚下的山巅上&#xff0c;怡然自得都是不过分的&#xff…

YOLOv8改进 | 低照度检测 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

一、本文介绍 本文给大家带来的2024.3月份最新改进机制,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络,CPA-Enhancer通过引入链式思考提示机制,实现了对未知退化条件下…

《内心强大比什么都重要》 - 三余书屋 3ysw.net

内心强大比什么都重要 今天我和大家一起分享一本好书&#xff0c;艾米莫林的《内心强大比什么都重要》。这本书中描述了人们如何控制情绪、想法和行动&#xff0c;让自己的内心更强大。书中也列举了一些有用的建议、积极向上的例子和实际解决方法&#xff0c;来帮助读者们克服…

Python搭建编程环境-安装Python3解释器

✅作者简介&#xff1a;CSDN内容合伙人、新星计划第三季Python赛道Top1&#x1f3c5; &#x1f525;本文已收录于Python系列专栏&#xff1a;零基础学Python &#x1f4ac;订阅专栏后可私信博主进入Python学习交流群&#xff0c;进群可领取Python视频教程以及Python相关电子书…

Linux是什么,该如何学习

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Linux的起源与发展 2、Linux在现代计算机领域…

Java源值1.5已过时,将在未来所有发行版中删除

1、背景 确认java项目没问题&#xff0c;但是启动的时候&#xff0c;却报错&#xff1a;java: -source 1.5 中不支持 diamond 运算符 2、解决 2.1 2.2 2.3 2.4 2.5

阿里云PAI-EAS试用-ComfyUI

试用信息 试用地址 PAI-EAS试用 提供资源 其中A10服务器在10元每小时左右&#xff0c;意味着我们可以使用的试用时间在40个小时以上。每天玩4小时&#xff0c;也可以玩10天了&#xff0c;练习完全够用。 具体过程 官方给了一个简单的指导文档&#xff0c;包括领用资源、部…

1688API接口|获取商品详情信息商品列表商品采集API图搜商品API

API调用公共参数 名称类型必须描述keyString是调用key&#xff08;注册账号获取API&secret&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认…

vulhub中Apache Solr RemoteStreaming 文件读取与SSRF漏洞复现

Apache Solr 是一个开源的搜索服务器。在Apache Solr未开启认证的情况下&#xff0c;攻击者可直接构造特定请求开启特定配置&#xff0c;并最终造成SSRF或任意文件读取。 访问http://your-ip:8983即可查看Apache Solr后台 1.访问http://your-ip:8983/solr/admin/cores?indexI…

Windows通过git配置github代码仓库全流程

git git是代码的版本控制工具 git安装和github注册 这个默认弄过了 通过git和github之间的SSH配置 在github上面新建仓库&#xff0c;做好配置 git绑定GitHub账号 先cd到上传的文件所在的目录 git config --global user.name "你的github用户名"git config -…

Linux 文件相关命令

一、查看文件命令 1&#xff09;浏览文件less 默认查看文件的前 10 行。 less /etc/services ##功能说明&#xff1a; #1.默认打开首屏内容 #2.按【回车】按行访问 #3.按【空格】按屏访问 #4.【从上向下】搜索用/111,搜索包含111的内容&#xff0c;此时按n继续向下搜&#x…