【华为】删数
2017-08-02 16:12
113 查看
题目描述
有一个数组a顺序存放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
输入
8
输出
6
分析:
数组是不断缩小的,所以就是vector的运用。也看到很多人用python写的。。。
code:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
using namespace std;
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int i;
if(n>1000)
n=1000;
vector<int> vec;
for(i=0;i<n;i++)
vec.push_back(i);
int ans=0;
while(vec.size()>1){
ans=(ans+2)%vec.size();
vec.erase(vec.begin()+ans);
}
cout<<vec[0]<<endl;
}
return 0;
}
相关文章推荐
- 华为高通携LTE技术杀入车联网,正面挑战V2X老标准
- 华为:现有一串字符串,请对字符串中的数字字符按照升序排序,其他非数字字符存储位置保持不变,将结果保存至output数组中
- 华为机试——整型到字符串的转换
- 关于任正非和华为,这10条必看!最后一条看哭无数人。。。
- 华为:将两个数从字符串转为数,将这两个数做乘积后再转化为字符串保存起来
- 华为机试——汽水瓶
- Android6.0 打开自启动管理页面(华为、小米)
- 华为公布未来五年规划:将发展高端手机
- 华为机试——查找组成一个偶数最接近的两个素数
- 华为机试题【12】-关灯泡
- 金融时报称华为放弃美国市场
- 华为机试——合并表记录
- 华为m2 803l 电信设置上网,亲测
- 路由器静态路由配置(华为模拟器)
- 华为oj 之 整数分隔
- 华为OJ(坐标移动)
- 华为S3700上的端口限速
- 华为机试——括号匹配
- 华为主推的Polar Code提案内容
- 2012华为机试(北京)