牛客网--2016--美团奇数位丢失
来源:互联网 发布:linux安装tgz文件 编辑:程序博客网 时间:2024/06/06 03:34
有些事情,记着记着就忘了,有些人,爱着爱着就变了,有些坚持,做着做着就停了。
很气,好气哦,为什么玩游戏可以坚持下去,而这个坚持总会忘掉。
题目:
对于一个由0..n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一过程直到最后剩下一个数。请求出最后剩下的数字。
输入:
每组数据一行一个数字,为题目中的n(n小于等于1000)。
输出:
一行输出最后剩下的数字。
解析:
这个想法无敌了。。。。
因为是从0开始,所以第一轮移走的是二进制下最右边为0的位置(从0开始的偶数位置)上的数,然后我们发现第二轮各个number的位置等于number/2,即从number位置到number>>1位置,这时候我们依然移走二进制下最右边为0的位置(1(01) 5(101) 9(1001) ……它们第二轮对应的位置是0, 2, 4),最后剩一个数肯定是0到n中二进制下1最多的那个数,因为它每次的位置都是奇数位置。代码如下
解题所需函数:
代码:
// 这个c++没的说#include <cstdio>int main(){ int n; while(scanf("%d", &n) != EOF){ int b = 1; while(b < n){ b <<= 1; } printf("%d\n", (b >> 1) - 1); } return 0;}// java方法简单易懂,实质上就是使用了单向链表的功能import java.util.Scanner;public class Main{ // 创建Node类,用于记录下一个节点和当前节点信息 static class Node{ int index; Node next; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int n = in.nextInt(); Node root = new Node(); root.index = 0; Node temp = root; //初始化 第一个结点 for(int i = 1;i<=n;i++){ // 创建新的节点并且 Node node = new Node(); node.index = i; temp.next = node; temp = node; } temp = root.next;//删除第一个 root = temp; while(root.next!=null){ // 当前为空或者tmep下一位为空,那么重新删除第一个 if(temp==null||temp.next==null){ temp = root.next;//删除第一个 root = temp; }else{ // 跨一位赋值 Node nextTemp = temp.next.next; temp.next = nextTemp; // 设定当前变量 temp = nextTemp; } } // 当且仅当只有一个数据的时候 System.out.println(root.index); } }}
阅读全文
0 0
- 牛客网--2016--美团奇数位丢失
- 美团点评2016研发题目-[编程题-美团] 奇数位丢弃
- 名企笔试:美团2016招聘笔试(奇数位丢弃)
- 美团——股票交易日、二维数组打印、奇数位丢弃、字符编码(哈弗曼编码)
- 【美团】丢失的三个数
- 奇数位丢弃
- 奇数位丢弃
- 《美团编程题》丢失的三个数
- 奇数位上都是奇数偶数位上都是偶数
- 输出奇数位的字符
- 笔试题-奇数位丢弃
- 寻找奇数出现 位运算
- 二进制的偶数位与奇数位
- 位操作之美
- 位运算之美
- Linux 64位,丢失内存
- 牛客网-剑指offer-13-调整数组顺序使奇数位与偶数之前
- 整型数各奇数位平方和
- nginx配置说明
- Vue之axios
- 剑指offer——58.对称二叉树
- 通过自己编写的C语言程序获取lcm正常格式的初始化数据代码
- 人脸检测和识别及python实现系列(1)-- 环境配置和相关类库安装
- 牛客网--2016--美团奇数位丢失
- 671
- vue基础知识
- spring boot could not resolve placeholder in string value 问题解决方法
- 使用rdo配置answer.ini网桥,实现创建能与外网通信的网络
- Android开发之Tween(补间动画)
- Android 进程间通信 Messenger
- linux服务监测 自动启动
- SwitchHosts—hosts管理利器