博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组完成约瑟夫环
阅读量:6293 次
发布时间:2019-06-22

本文共 979 字,大约阅读时间需要 3 分钟。

算法思路是

1 用一个变量j标记走到了了多少步,初始为0,表示走到了第一个数。

2、让一个指针每次都向前移动2个不为0的数,然后打印出这个数,再置这个数为0

3、当数组的每一项都为0的时候,说明已经全部找完了。

代码如下:

package algorithms.chapter1;public class YueSeFuCycle {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		int[] test = {1,2,3,4,5,7,8,9};		getOutItem(test, 2);	}	public static void getOutItem(int[] items, int interval){		int j = 0;					//在数组全部为0,时候跳出循环,j表示一共向前跑了多少步			//初始化的时候j为0,j				while(!isEmpty(items)){					//寻找正好寻到2个不为0的数的位置					int k = 0;					while(true){						if(items[j % items.length] != 0){							k++;						}						if(k == 2){							System.out.println(items[j % items.length]);							items[j % items.length] = 0;							break;						}						j++;											}									}								}					public static boolean isEmpty(int[] items){		boolean flag = true;		for(int i = 0; i < items.length; i++ ){			if(items[i] != 0){				flag =false;			}		}		return flag;	}	}

  

转载于:https://www.cnblogs.com/dongqiSilent/p/3443952.html

你可能感兴趣的文章
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>
MyBatis-Plus | 最简单的查询操作教程(Lambda)
查看>>
rpmfusion 的国内大学 NEU 源配置
查看>>