`
endual
  • 浏览: 3565634 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

面试--约舍夫问题

 
阅读更多

以前在一个笔试的时候考到过。。。

类似的问题。

http://wenku.baidu.com/view/179cb419a8114431b90dd896.html###

 

 

package com.huawei.job.endual.que1.main;

class YueSheFuQuestion {

	private int[] arrPosition; // 每个人的位置
	private int[] arrSecret; // 每个人对应的密码
	private int SECRET = 0; // 密码

	public YueSheFuQuestion(int[] arrPosition, int[] arrSecret, int SECRET) {

		this.arrPosition = arrPosition;
		this.arrSecret = arrSecret;
		this.SECRET = SECRET;

	}

	public void printPeople() {

		int mCount = this.arrPosition.length; // 人的总数
        System.out.println("mCount = " + mCount);
		
		int curPeopleCount = mCount; // 当前人的数量
		int curCount = 1; // 当前数字的位置
		int curSecret = this.SECRET; // 当前的位置
		int curPosotion = 0; // 当前人的位置,从第一个人数

		while (curPeopleCount != 0) {// 当前的数目只有一个人的时候,就停止
			
			if (arrPosition[curPosotion] == -1) { // 这个人已经出局的

				curPosotion = curPosotion + 1; // 当前人的位置加1
				
				if (curPosotion == mCount) { // 如果当前人的位置数量大于了人的总是,那么就循环了
					curPosotion = 0; // 从第一人开始了
				}
				//curCount = curCount + 1; // 当前报数添加一个

			} 
			else { // 没有出局的
				if (curCount == curSecret) { // 当前数数是否等于当前的密码
					System.out.print("Position-->"
							+ arrPosition[curPosotion] + "||"); // 打印出当前的位置
					curSecret = arrSecret[curPosotion]; // 把密码赋值给当前的密码
					arrPosition[curPosotion] = -1; // 当前的位置出局
					curPeopleCount--; // 当前的数目要减去一个
					
					curPosotion = curPosotion + 1; // 当前人的位置加1
					if (curPosotion == mCount) { // 如果当前人的位置数量大于了人的总是,那么就循环了
						curPosotion = 0; // 从第一人开始了
					}
					curCount = 1; // 从1开始了数了
					
				} else { // 如果是不相等的

					curPosotion = curPosotion + 1; // 当前人的位置加1
					if (curPosotion ==  mCount) { // 如果当前人的位置数量大于了人的总是,那么就循环了
						curPosotion = 0; // 从第一人开始了
					}
					curCount = curCount + 1; // 当前报数添加一个

				} // end else2

			} // end else1

		} // end while

	} // end printPeople

} // end class
 

 

 

    package com.huawei.job.endual.que1.main;

public class MainRun {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int mCount = 7 ;
		int[] arrPosition = new int[7] ;
		int[] arrSecret = new int[7] ;
		for (int i=0; i < mCount; i++) {
			arrPosition[i] = i+1 ;
			System.out.print(arrPosition[i] + "||");
		}
		System.out.println("----");
		for (int i=0; i < mCount; i++) {
			
			int random = (int)(Math.random()*100) ;
			arrSecret[i] = random ;
			System.out.print(arrSecret[i] + "||");
			
		}
		System.out.println("----");
		int secret = (int)(Math.random()*1000) ;
		System.out.println("secret=" + secret);
		
		//arrPosition = [] ;
		//int[] arrSecretx = {3,1,7,2,4,8,4} ;
		//secret = 20 ;
		YueSheFuQuestion yQue = new YueSheFuQuestion(arrPosition,arrSecret,secret) ;
		yQue.printPeople() ;
		
		
	}


}

 

 

 

   效率很不高,但是应付笔试完全没有问题了

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    约舍夫问题

    约舍夫问题,c语言描述,配严蔚敏老师数据结构(c语言版)

    966891-sedona-21:叶卡捷琳娜·加舍夫斯卡娅(Ekaterina Gasevskaya)

    个人项目“塞多纳” 学生: 。 导师: 。 请注意,您的源文件文件夹为source/ 。 有用的文件: 变更指南。 不要删除或注意文件: .editorconfig , .gitattributes , .gitignore , .stylelintrc , .travis.yml ,...

    c语言源程序

    c语言源程序,约舍夫。欢迎大家指点。如果有什么问题,请大家指出,或是一起讨论。谢谢。

    Distruberade:舍夫德大学分布式网络设计

    舍夫德大学的这个项目,"Distruberade",显然是针对这一领域的研究与实践,旨在教授和探索如何构建高效、可靠且可扩展的分布式系统。在这个项目中,主要涉及的知识点包括但不限于以下几个方面: 1. **分布式系统...

    design-system:www.chefkoch.de的设计系统

    舍夫科奇设计系统 该存储库包含Chefkoch设计系统(DSY)。 它的模式和文档是使用构建的。 展示柜: : 内容 安装及使用 使用Docker维护设计系统 docker run --rm -v $(pwd):/app -w="/app" node npm install|...

    Takvimi Sot-crx插件

    其他功能:-它仅显示科索沃,阿尔巴尼亚,什库普和普雷舍夫的祈祷时间,乌尔沁。 -祈祷的时候通知用户。 -务必显示下一个祈祷时间。 -显示下一次祈祷的倒数。 -在线/离线工作。 Takvimi Sotshërbenpërshfaqjen ...

    stochastic calculus for finance solution

    该教材分为两卷,涵盖了金融数学中的核心理论与实践问题,特别是随机过程在金融模型中的应用。 #### 描述解析 描述部分明确指出这是一个针对斯特文·舍夫编写的两卷本《随机微积分在金融中的应用》的解决方案手册。...

    Takvimi Sot Popup-crx插件

    特点:-它仅显示科索沃,阿尔巴尼亚,什库普,普雷舍夫,乌尔钦的祈祷时间。 -在祈祷时间通知用户。 -总是显示下一个祈祷时间。 -显示下一次祈祷的倒数。 -允许用户更改通知和位置的设置-在线/离线工作。 Takvimi So...

    LED发展史的认识和学习LED相关历史

    - **1927年前后**:俄国科学家奥列弗·拉基洛舍夫(Oleg Losev)独立制造了世界上第一颗LED,并在多个科学期刊上发表了研究成果,但未受到重视。 - **1955年**:美国无线电公司(RCA)的科学家鲁宾·布朗斯坦(Rubin ...

    java实现学生管理系统源码-tp4-beg1shev:tp4-beg1shev由GitHubClassroom创建

    别吉舍夫 名 丹尼斯 团体 # BS17-DS-02 [] 教师 1 2 3 4 [X] 伊诺波利斯 {要求 你需要: 一个帐户 一个终端(如果你使用 Window$) :light_bulb: 在终端中尝试以下命令来检查您的git环境: git config --global -l ...

    Tangible-Scheduler:有形制作的自动调度程序 - 根据具有某些技能的成员的可用性来安排电影会议

    贾斯汀·舍夫 (jschoeff81690) 胡安·希门尼斯 (juandi007) 理查德·马修斯 (idkyoutellme) 泰勒芬克 (tfink419) ###测试笔记 当您运行 grunt 测试时, grunt 必须正在运行该应用程序 ###Class Files 软件工程...

    riot-isomorphic-template:防暴同构项目模板

    舍夫特 基于riot&express的riot同构框架 特色 JS快速渲染 SEO友好 支持html5 pushState 如果IE &lt;10,则支持hashchange 支持IE9 + npm install npm run watch 提示:用户名/密码为admin / admin 笔记 图书馆 ...

    FIR 设计:去除音频信号中的回声-matlab开发

    在音频处理领域,回声是常见的问题,尤其是在录音或在线通信中。回声可能是由房间内的反射声波或不理想的音频设备引起的。本项目聚焦于使用MATLAB进行FIR(有限 impulse response)滤波器的设计,以有效地去除音频...

    theoldreader-chrome:适用于旧阅读器的Chrome扩展程序

    旧读者通知程序WebExtension 该扩展程序将仅显示一个图标,该图标使您可以直接从工具栏访问“旧阅读器”( )。... 亚历山大·卡舍夫 瓦西里(Vasilij Melnychuk) 米哈尔·斯坦克(Michal Stanke)

    qsseditor::artist_palette:跨平台应用程序可编辑和预览Qt样式表(QSS)

    作者:德米特里·巴里舍夫(Dmitry Baryshev) Mac补丁:以色列Lins Albuquerque 建造要求 Qt&gt; = 4,建议使用Qt5 MSVC或MinGW 许可说明 QssEditor在GNU GPLv3 +下(请参阅LICENSE.txt) QScintilla部件在GNU GPL...

    图像分类演示

    图像分类演示这是一个演示项目,目的是证明使用Apple的框架向应用程序添加基本机器学习是简单而有趣的。 由于它是作为概念证明而编写的,因此请注意在几个...作者贾里尔·阿克巴舍夫-执照此项目已获得MIT许可证的许可

    worldmaps

    一些空间数据分析项目马特·马利舍夫(Matt Malishev) 版本: R 3.5.0 RStudio 1.1.453 文件扩展名: .R .md .html30天地图挑战2020年11月#30dayMapChallenge的地图条目。第一天-积分使用Mapbox Studio和R在世界上...

Global site tag (gtag.js) - Google Analytics