zoukankan      html  css  js  c++  java
  • 华为机试-删数

    有一个数组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]进行计算。


    输出描述:
    一行输出最后一个被删掉的数的原始下标位置。

     程序实现

    1. import java.util.LinkedList;  
    2. import java.util.Queue;  
    3. import java.util.Scanner;  
    4.   
    5. /** 
    6.  * 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。 
    7.  * 以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除), 
    8.  * 如此循环直到最后一个数被删除。 
    9.  *  
    10.  * 输入描述: 每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。 
    11.  *  
    12.  *  
    13.  * 输出描述: 一行输出最后一个被删掉的数的原始下标位置。 
    14.  *  
    15.  */  
    16.   
    17. public class Main {  
    18.   
    19.     public static void main(String[] args) {  
    20.         Scanner scanner = new Scanner(System.in);  
    21.         while (scanner.hasNext()) {  
    22.             int num = scanner.nextInt();  
    23.             if (num > 1000) {  
    24.                 num = 1000;  
    25.             }  
    26.             int index = findLast(num);  
    27.             System.out.println(index);  
    28.         }  
    29.   
    30.     }  
    31.   
    32.     private static int findLast(int num) {  
    33.         Queue<Integer> queue = new LinkedList<>();  
    34.   
    35.         for (int i = 0; i < num; i++) {  
    36.             queue.add(i);  
    37.         }  
    38.         int h = 0;  
    39.         int out = 0;  
    40.         while (!queue.isEmpty()) {  
    41.             out = queue.poll();  
    42.             h++;  
    43.             if (h < 3) {  
    44.                 queue.add(out);  
    45.             } else {  
    46.                 h = 0;  
    47.             }  
    48.         }  
    49.   
    50.         return out;  
    51.     }  
    52.   
    53. }  
  • 相关阅读:
    entity framework 查看自动生成的sql
    如何从只会 C++ 语法的水平到达完成项目编写软件的水平?
    C/C++程序员必须熟练应用的开源项目
    VS2013创建Windows服务
    VS2013中使用Git建立源代码管理
    PowerDesigner导出表到word
    SQLSERVER的逆向工程,将数据库导入到PowerDesigner中
    Asp.Net MVC+EF+三层架构的完整搭建过程
    QT开发(一)Vs2013集成 QT5.3.1
    VS2013 好用的插件
  • 原文地址:https://www.cnblogs.com/wwjldm/p/7158785.html
Copyright © 2011-2022 走看看