• 华为:删固定位置的数


    删数
    有一个数组a[N]顺序存放0-N,要求没隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。
    输入描述:
    每组数据为一行一个整数n(小于等于1000),为数组成员数,如100,则对a[999]进行计算。
    输出描述:
    一行输出最后一个被删掉的数的原始下标位置。
    输入例子:
    8
    输出例子:
    6
    解题

    利用数组删除
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                int n = in.nextInt();
                int id = -1;
                if(n<=1){
                    break;
                }
                 
                int[] A = new int[n];
                int flag = 0;// max 3
                int num = n;
                while(num>=1){
                    id++;
                    if(id ==n) id = 0;
                    if(A[id] == 0){
                        flag++;   
                    }
                    if(flag == 3){
                        flag = 0;
                        A[id] = -1;
                        num--;
                    }
                     
                }
                System.out.println(id);
                 
            }
        }
    }
  • 相关阅读:
    ASFNU SC Day6
    ASFNU SC Day3
    ASFNU SC Day2
    ASFNU SC Day1
    2017-9-3 校内模拟T2取数win
    2017-9-3 校内模拟T1卡片card
    (补题)苗条的树(poj_3522)
    跳跳棋(9018_1563)(BZOJ_2144)
    Java之JSP和Servlet基础知识。
    JSP中的九大内置对象
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5289192.html
Copyright © 2020-2023  润新知