码迷,mamicode.com
首页 > 其他好文 > 详细

循环删除元素,返回最后一个被删除元素的下标

时间:2019-09-12 23:13:08      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:name   space   删除元素   tor   开始   count   ios   stream   search   

输入一个整数n(n大于等于2,小于等于1000),则从i=2开始每隔两个元素在数组arr[n]中删除该元素,可以在数组中循环,请返回最后一个被删除元素的下标:

#include<iostream>
#include<vector>
using namespace std;
int search(int n){
    vector<int>visited(n,0);
    if(n==2){
        return 1;
    }
    int count=0;
    int i=2;
    while(true){ 
         visited[i]=1;
         count++;
        if(count==n){
           return i;
        }
       int count2=0;
       while(visited[i]==1||count2<2)
       {
           if(visited[i]==0){
            count2++;
            }
            i++;
            i=i%n;
       } 
    }
}
int main(){
    int n;
    while(cin>>n){
        cout<<search(n)<<endl;
    }
}

循环删除元素,返回最后一个被删除元素的下标

标签:name   space   删除元素   tor   开始   count   ios   stream   search   

原文地址:https://www.cnblogs.com/qiuhaifeng/p/11515375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!