面试题-华为(16年)-约瑟夫环:每隔两个数删掉一个数...-4
来源:互联网 发布:js td赋值 编辑:程序博客网 时间:2024/06/08 04:59
这是华为16年的面试题,网上有很多关于此题目的解析,在此我选择了最好理解记忆的一种,分享在此给大家。等会看题目你会发现这道题目其实是约瑟夫环的一个应用,使用数据结构中的链表。由于本人能力有限,中间遇到了不少问题,因此代码中夹杂了一些博主对于该题目的理解。
该部分的代码与解答参考于下面的博客1与博客2。源代码中有一些问题,我进行了修改,代码所有权归原作者所有。
除此之外,该面试编程题来自于牛客网,本人分享在此仅供大家学习与交流用,不担负任何法律责任。博文版权归博主所有,转载需注明出处。
问题描述
有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。
输入描述:
每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。
输出描述:
一行输出最后一个被删掉的数的原始下标位置。
输入例子:
8
输出例子:
6
程序与代码
//约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题#include <iostream>using namespace std;struct node{ int data; node *next;};const int N = 1000;//const int null=0;int main(){ int num; cin>>num; if(num>1000) num = 1000; //初始化node结构,生成头节点 node *head = new node; head->data = 0; head->next = NULL; node *p = head; //成环 //初始化数据 for(int i=1;i<num;i++) //注意初始化节点已经为0,下一个节点从1开始 { node *tmp = new node; tmp->data = i; tmp->next = NULL; head->next = tmp; head = head->next; //上一个节点是下一个节点的前节点 //cout <<head->data<<endl; } head->next = p; //最后一个地址指向头节点,成环 while(p!=p->next) //如果没有循环到初始位置 { p->next->next = p->next->next->next;//将p的向下第二个指向位置改为指向第三个,替换第二个 p = p->next->next; } cout << p->data <<endl; //最后即为想要的结果 return 0;}
0 0
- 面试题-华为(16年)-约瑟夫环:每隔两个数删掉一个数...-4
- C语言 实现约瑟夫环 (有一个数组a[1000]存放0--1000;要求每隔二个数删掉一个数)
- 有一个数组,每隔两个数删掉一个数,到末尾又循环到开头继续进行,求最后一个被删除的数的原始下标位置
- 面试题-华为(16年)-数独-7
- 用循环链表实现数组每隔两个数删除数直到最后一个数
- 华为(2007年3月)一道面试题: c语言判断一个正整数, 是否是一个对称数
- c++ 每三个数删掉一个数
- Java面试题之一对调两个数
- 有一个数组a[1000]存放0--1000;要求每隔二个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。
- 面试题-求一个数的平方根
- 华为-删数-约瑟夫环问题-不利用额外空间
- 删数--约瑟夫环-- 华为2016研发工程师编程题
- (华为笔试)删数 约瑟夫环问题
- 约瑟夫环—华为试题
- 微软面试题:快速寻找满足条件的两个数
- 面试题39:求和为指定值的两个数
- Cracking the code interview 面试题:两个数相加
- 面试题:实现两个数的和,不能用“+”“-”
- TabLayout+ViewPager 懒加载
- 滑动退出Activity的两种方法
- mysql--基准测试
- jvm调优
- js中的setTimeout遇到的困惑
- 面试题-华为(16年)-约瑟夫环:每隔两个数删掉一个数...-4
- 在 Android 中 使用JNI
- 数据模型分析
- HTML基础认识
- 判断<a>标签跳转
- 题目1208:10进制 VS 2进制
- mysql存储过程_介绍_入门实例
- HoG 和PHoG (pyramid HoG)
- 适配器模式原理