又是一道递推 代码如上; 试题描述: 你一定听说过经典“约瑟夫”问题吧?现在来组织一个皆大欢喜的新游戏:假设 n 个人站成一圈,从第 1 人开始交替的去掉游戏者,但只是暂时去掉(例如,首先去掉 2),直到最后剩下唯一的幸存者为止。幸存者选出后,所有比幸存者号码高的人每人将得到 1 块钱,并且永久性地 ...
分类:
编程语言 时间:
2018-07-26 15:07:55
阅读次数:
505
1. 一个杀人游戏 这个问题是以弗拉维奥?约瑟夫命名的,它是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另外一个人是最后两个留下的人。约瑟夫斯说服了那个人,他们将向罗马军队投降,不... ...
分类:
其他好文 时间:
2018-07-03 22:30:40
阅读次数:
136
1. 一个杀人游戏 这个问题是以弗拉维奥·约瑟夫命名的,它是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另外一个人是最后两个留下的人。约瑟夫斯说服了那个人,他们将向罗马军队投降,不 ...
分类:
其他好文 时间:
2018-07-03 00:57:48
阅读次数:
191
问题描述 约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。 给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。 测试样例: ...
分类:
其他好文 时间:
2018-06-12 23:30:44
阅读次数:
212
约瑟夫问题的升级版,每次出去的是前一个出去的人位置+手上的数字(正往前,负往后)。第i个出去的人拿的糖是i的约数的个数。求拿糖最多的人和他的糖果数。 这里用到了反素数的知识,在这直接打表 题目 AC代码: #include<stdio.h> #include<string.h> #define ls ...
分类:
其他好文 时间:
2018-05-24 18:13:31
阅读次数:
153
原创博文,转载请注明出处! # 题目 # 思路 本题即为典型的约瑟夫问题,通过递推公式解决。 第一行表示每个人的下标,现在要从11个人中删除报数为3的人,从图中可以可看出最后7是胜利者。分析其中的规律: 第一轮中,11个人中胜利者7的角标是6; 第二轮中,10个人中胜利者7的角标是3; 第三轮中,9... ...
分类:
编程语言 时间:
2018-05-09 22:46:33
阅读次数:
249
M个人围成一圈,从第一个开始报数,第N个将被杀掉,最后剩下一个,其余人都将被杀掉。例如M=10,M=3,被杀掉的顺序是:3,6,9,2,7,1,8,5,10,4. 使用单循环链表实现 API函数和单循环链表一样 main.c 宏定义M为10,N为3 运行结果: ...
分类:
其他好文 时间:
2018-04-26 01:26:58
阅读次数:
148
没错,是我。 我又回来了。 今天让我们学习一种基础数据结构:链表。 我们知道,在存储一大堆数时,我们通常用数组。但有时却有缺陷。比如: 我们想要往一个数列中,在一个确切的位置里插入一个元素,然后输出增加元素后的数列。由于位置已经给定,我们既要插入,又要保护其他元素不被覆盖。用数组呢,即为找到那个位置 ...
分类:
其他好文 时间:
2018-03-04 10:34:02
阅读次数:
184
题目链接:http://bailian.openjudge.cn/practice/2746描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编 ...
分类:
其他好文 时间:
2018-03-03 14:00:26
阅读次数:
142