约瑟夫环 java代码_约瑟夫环算法的Java实现代码
相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类.
算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针从1到k数数,每数到k的人退出圈子,圈子缩小,然后从下一个人继续从1到k数数,重复上面过程。求最后推出圈子的那个人原来的编号。
程序实现:
public class JosephCircle {
private class Node {
public Node nextnode;
public boolean flag;
}
private Node[] list;
public JosephCircle() {
list = new Node[30];
int i;
for (i = 0; i < 30; i++) {
Node node = new Node();
node.flag = true;
if (i > 0) {
list[i - 1].nextnode = node;
}
list[i] = node;
}
list[i - 1].nextnode = list[0];
}
public void start() {
Node node = list[29];
for (int i = 0; i < 135; i++) {
if ((i+1) % 8 == 0) {
node.flag = false;
node.nextnode = node.nextnode.nextnode;
} else {
node = node.nextnode;
}
}
}
public void print() {
Node node = list[29];
for (int i = 0; i < 30; i++) {
if (node.flag) {
System.out.print("#");
} else {
System.out.print("@");
}
node = node.nextnode;
}
}
public static void main(String[] args) {
JosephCircle jc = new JosephCircle();
jc.start();
jc.print();
}
}
约瑟夫环算法的Java实现代码.doc
下载Word文档到电脑,方便收藏和打印[全文共967字]
编辑推荐:
下载Word文档
约瑟夫环 java代码_约瑟夫环算法的Java实现代码相关推荐
- java二叉排序树_数据结构与算法—二叉排序树(java)
前言 前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度.规则相对是简单的. 再数据结构中树.图才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的难度相比线性表大一 ...
- python3.4勾股定理代码_用于解答算法题目的Python3代码框架
前言 最近在实习,任务并不是很重,就利用闲暇时间使用Python3在PAT网站上刷题,并致力于使用Python3的特性和函数式编程的理念,其中大部分题目都有着类似的输入输出格式,例如一行读入若干个数字 ...
- 归并排序 java 迭代_经典排序算法之归并排序(示例代码)
归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为 (大O符号).1945年由约翰·冯·诺伊曼首次提出.该算法是采用分治法(Divide an ...
- bm25算法Java代码_搜索引擎相关度算法 -BM25 JAVA实现
bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法. 它的出现主要是解决TF-IDF算法中 TF的影响可无限增大的不足,本质上 BM25是基于TF-IDF并做了改 ...
- java 权重_权重随机算法的java实现
一.概述 平时,经常会遇到权重随机算法,从不同权重的N个元素中随机选择一个,并使得总体选择结果是按照权重分布的.如广告投放.负载均衡等. 如有4个元素A.B.C.D,权重分别为1.2.3.4,随机结果 ...
- a*算法matlab代码_蚁群算法(含MATLAB代码)
CSDN-专业IT技术社区-登录blog.csdn.net
- java中的随机生成算法_随机生成算法的java代码太复杂了
public static Integer[] generateRandomArray(int n, int rangeL, int rangeR) { assert rangeL <= ran ...
- java环形链表_数据结构和算法(四)Java实现环形链表
1. 数据结构和算法(四)Java实现环形链表 1.1 约瑟夫问题 约瑟夫问题:公元66年,约瑟夫不情愿地参与领导了犹太同胞反抗罗马统治的起义,后来起义失败,他和一些宁死不降的起义者被困于一个山洞之中 ...
- java的hash算法实现_一致性Hash算法的Java实现详解
package com.baijob.commonTools; import java.util.Collection; import java.util.SortedMap; import java ...
最新文章
- windows版本下使用xdebug
- Ubuntu16.04 配置SSH无密码登录
- 详细解析WSAAsyncSelect模型
- mysql inodb主键bug_MySQL的这个bug,坑了多少人?
- 【音视频安卓开发 (四)】AndroidStudio项目配置权限、jni库路径、ABI
- Webstorm设置开发模板
- TiDB在360云平台的落地
- vSwitch报文转发分析
- php 常用正则表达 邮箱 手机号啥的
- 【Java】JFileChooser的用法及借助JFileChooser选择文件并操纵打印机打印出来
- c10k java_c10k问题及其解决方案
- Excel 批量删除空白行,你用了 2 小时,同事 3 分钟就搞定了
- 【STM32】 STM32单片机IO引脚配置方式
- 转载(工信部):张欣 辽宁奇辉电子系统工程有限公司
- 我们采访了三位学生:他们写代码、95 后、来自大陆和台湾
- testing众测学院测试用例考核题目及答案
- ldpc译码讲解_LDPC码译码方法和编码方法与流程
- (原創) 如何自行在ThinkPad X61安裝Windows XP Professional SP3? (NB) (ThinkPad) (X61) (OS) (Windows)...
- Ubuntu 20.4 WIFI信号不稳定,ping路由器延迟比较慢解决办法
- Linux通过curl下载jdk
热门文章
- CSS如何实现波浪效果
- 深度剖析‘StringBuilder‘ can be replaced with ‘String‘ 提示
- Fibonacci sequence及相关问题介绍
- Python列表切片操作
- 第13贴:三极管工作原理的形象描述
- ab apache bench 增压测试方案,采用gnuplot数据汇总+excel生成折线图
- Python Matplotlib contour和contourf:绘制等高线
- Mathtype与word字号对照
- java语言中 说明或声明数组时内存大小,说明或声明数组时不分配内存大小,创建数组时分配内存大小。...
- 博客专栏第一篇文章——我眼里的DBA