zoukankan      html  css  js  c++  java
  • [华为]删数

    时间限制:1秒 空间限制:32768K 热度指数:25561
    本题知识点: 模拟

    题目描述

    有一个数组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
     1 #include<iostream>  
     2 #include<queue>  
     3 using namespace std;  
     4 
     5 int main()
     6     {
     7        int n;
     8        while(cin>>n)
     9            {
    10               if(n>1000)
    11                   n=1000;
    12               queue<int> dig_q;
    13               for(int i=0;i<n;++i)
    14                   {
    15                      dig_q.push(i);
    16                   
    17               }
    18               int count=0;
    19            while(dig_q.size()!=1)
    20            {
    21               if(count!=2)
    22                   {
    23                       int q_head=dig_q.front();
    24                       dig_q.pop();
    25                       dig_q.push(q_head);
    26                       count++;
    27                   
    28               }
    29            else{
    30                   dig_q.pop();
    31                   count=0;
    32               }
    33            }
    34            int res=dig_q.front();
    35            cout<<res<<endl;
    36               
    37        }
    38     return 0;
    39 }
  • 相关阅读:
    java图片压缩处理
    RocketMQ启动broker提示 错误:找不到或无法加载主类
    Docker
    openresty (nginx+lua)实现请求过滤
    mybatis-3.4.0 Date类型非空字符串判断bug
    ClickHouse 官方文档
    Flume 搭建遇到的问题
    Hadoop与HDFS
    关于Linux
    mybatis insert 返回主键
  • 原文地址:https://www.cnblogs.com/bxyan/p/6928437.html
Copyright © 2011-2022 走看看