约瑟夫环,报数为m删掉,只留最后一个数
一个 最后 约瑟夫 删掉
2023-09-11 14:16:32 时间
1.正向操作,报数为m的删掉,最后只留一个
function rev(n, m) {
let arr = []
for (let i = 1; i <= n; i++) {
arr.push(i)
}//1-n存入数组
let t = 1, i = 0
while (arr.length > 1) {
if (t == m) {//报数m,在数组中去掉这个数,t从1开始数,注意i不用+1,因为splice删除次数,后面自动向前填补,i自动为下一个数
arr.splice(i, 1)
t = 1
} else {
t++
i++
}
if (i == arr.length - 1&&arr.length > 1) {//i走到数组最后
if (t == m) {//如果报数m,删数(注意这一步不可忽略,否则出错)
arr.splice(i, 1)
t = 1
}else {未报数m,继续报数
t++
}
i = 0 //i走到数组最后,重新置1
}
}
return arr[0]//返回唯一剩下的数
}
console.log((rev(13, 5)))
2.逆向操作,从最后剩的人最开始找其下标
var lastRemaining = function(n, m) {
res=0
for(let i =2;i<=n;i++){
res=(res+m)%i
}
return res
};
相关文章
- [LeetCode] Length of Last Word - 最后一个单词的长度
- Linux中显示一个文件最后几行的命令
- 编写一个头像裁剪组件(一)
- 深入剖析tomcat之一个简单的web服务器
- Java实现 LeetCode 34 在排序数组中查找元素的第一个和最后一个位置
- SQL server怎么查找某个时间段(多个时间段)的第一个值 或 最后一个值(这里举例查找每小时的第一个值)(Convert详细方法)...
- swiper选项卡还可以左右滑动,最后一个直接跳转链接
- 最后一个 last-of-type
- python安装及写一个简单的验证码组件(配合node)
- 【一】设计一个类,我们只能生成该类的一个实例。
- Js中的一个日期处理格式化函数
- 34. 在排序数组中查找元素的第一个和最后一个位置(2)
- 7-Zip将一个大文件压缩成多个小的压缩包
- SAP UI5 FileUploader 控件深入介绍 - 为什么需要一个隐藏的 iframe 试读版
- 如何使用SAT trace一个正在运行的程序
- 使用 Node.js Stream API 减少服务器端内存消耗的一个具体例子
- 电脑只有一个磁盘怎么快速分区
- java字符串练习题6、最后一个单词的长度
- python 扫描(可以按照后缀前缀扫描)并复制到另一个文件夹中
- 【LeetCode Python实现】34. 在排序数组中查找元素的第一个和最后一个位置(中等)
- 习题 6.20 用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。整数和n在主函数中输入。最后在主函数中输出。
- 习题 3.3 输入一个华氏温度,要求输出摄氏温度。公式为C=5/9(F-32),输出要有文字说明,取两位小数。
- 习题 8.3 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1.输入10个整数;2.进行处理;3.输出10个数。
- 练习 1-22 编写一个程序,把较长的输入行“折”成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后。
- Java //PP2.17 编写一个applet,画出一些用绳子拴住的各种颜色的气球
- C++string返回最后一个字符
- 小学生蓝桥杯Python闯关 | 获取字符串的最后一个字符
- 去除字符串中空格r语言如何去掉字符串向量里面的空格R 去除所有空格 在R中的最后一个逗号上分割字符串 以最后一个逗号为切割符 r 正则表达式 学习教程资料代码 以最后一个逗号为分隔符 r 去掉多个空格
- 农业告别代码,成为一个真正的程序猿
- 年薪百万,7年测试经验:守在一个还算不错的赛道,慢慢积累,等风来
- 一文弄懂Hive基本架构和原理——Hive元数据信息存储在Hive MetaStore中,Hive 中所有的数据都存储在 HDFS 中,Hive 中数据模型:Table,External Table,Partition,Bucket;最后将一个SQL变成hadoop MapReduce作业
- 大数据中判断一个数据存在
- C# 显示一个“Hello world!”