华为面试题——约瑟夫问题的C++简单实现(循环链表)
/*
author:jiangxin
Blog:http://blog.csdn.net/jiangxinnju
Function:method of Josephus question
*/
#include <iostream>
using namespace std;
struct node
{
int seq;
node *next;
};
typedef struct node NODE;
void test_Josephus()
{
/*假设共有n人,从第s个人开始数数,每数到m该人出列,后面的人重新开始数,知道全部人出列*/
int n,s,m;
NODE *head,*last,*current,*prev;
cout << "Input the n,s,m(separate with space):";
cin >> n >> s >> m;
for(int i=1;i<=n;i++) //建立循环链表
{
current = new NODE;
current->seq = i;
current->next = head;
if(i == 1)
{
head = current;
last = current;
}
else
{
last->next = current;
last = last->next;
}
}
current = head; //遍历循环链表,输出序列
do
{
cout << current->seq << " ";
current = current->next;
}while(current!=head);
current = head; //将current置于第s个位置
for(int i=1;i<s;i++)
{
current = current->next;
}
cout << endl;
for(int i=1;i<=n;i++) //共循环n轮,得到一个整体的输出序列
{
for(int j=1;j<m;j++)
{
prev = current;
current = current->next;
}
cout << current->seq << " ";
prev->next = current->next;
delete current;
current = prev->next;
}
}
华为面试题——约瑟夫问题的C++简单实现(循环链表)的更多相关文章
- C语言面试题大汇总之华为面试题 Eddy整理
1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局 ...
- 牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- Sql面试题之三(难度:简单| 含答案)
Sql面试题之三(难度:简单| 含答案) 答案: .SELECT B.name, B.Depart T.Content FROM B, T WHERE ( T.Content = '税法培训' and ...
- Random随机类(11选5彩票)BigInteger大数据类(华为面试题1000的阶乘)
先上Java Web图 为了简化叙述,只写Java代码,然后控制台输出 使用[Random类]取得随机数 import java.util.Random; public class Fir { pub ...
- 华为机试题【13】-wave数组找字母游戏
题目描述: Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉.如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f. 但现在你的任务可没有这么简单,你 ...
- 华为机试题——数组排序,且奇数存在奇数位置,偶数存在偶数位置
题目要求很简单,就是给你一个数组,对它进行排序,并且排序后,奇数要放在奇数的位置上,偶数要放在偶数的位置上,如果不满足这个规则的话就在数组上填充0 实现代码如下,文中值得注意的一点就是如何判读这个数字 ...
- 华为笔试题--LISP括号匹配 解析及源码实现
在17年校招中3道题目AC却无缘华为面试,大概是华为和东华互不待见吧!分享一道华为笔试原题,共同进步! ************************************************ ...
- 华为机试题【10】-求数字基root
题目描述: 求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复; 输入:输入任意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行对应一 ...
- 华为面试题——一道关于指针方面的编程题(C/C++)
int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素 ...
随机推荐
- 第二课 android项目结构
- DEV界面皮肤
1.添加一个 2.添加引用: 3.添加一个SkinTools类 public class SkinTools { /// <summary> /// 在Program中调用 /// < ...
- 修改数据库表的schema,(表的[dbo.]前缀)
数据库使用过程中遇到这种问题,请看下图
- NSKeyedArchive(存储自定义对象)
在viewController.m中: - (void)viewDidLoad { [super viewDidLoad]; ZWPerson *p = [[ZWPerson alloc] init] ...
- poj 1265 Area (Pick定理+求面积)
链接:http://poj.org/problem?id=1265 Area Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...
- 在SQL Server中 获取日期、日期格式转换
--常用日期转换参数: PRINT CONVERT(varchar, getdate(), 120 ) 2016-07-20 16:09:01 PRINT replace(replace(replac ...
- webview页面和壳通信的库(精简版)
// PG精简版 (function() { var PG = { iosBridge: null, callbackId: 0, callbacks: [], commandQueue: [], c ...
- 常见的PC端和移动端表单组件
http://files.cnblogs.com/samwu/PC%E7%AB%AF%E5%89%8D%E7%AB%AF%E4%BA%A4%E4%BA%92%E7%BB%84%E4%BB%B6.rar
- [转]十款提高开发效率的PHP编码工具
1 . PHPUnit 测试在软件开发中是相当重要的一环,但很多开发者都只是给予很少的时间去测试,因为这工作的确相当耗时,枯燥并且容易出错.为了解决以上问题,自动化测试工具能让开发者编写一系列测试脚本 ...
- 自学EF一些小笔记
一直在用DHhelper做MVC,感觉好山寨,也不怎么好用.决定开始学EF. 废话不多说开始记笔记..... EF就是把数据库表,存储过程,视图实例化,通过继承DbContext的一个类来操作数据实例 ...