L1-041 寻找250
题目链接-L1-041 寻找250
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。
输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
5
解题思路
STL vector
- 先用vector存取输入的每个数
- 再用
find(v,begin(),v.end(),value)
函数返回指定值value所对应的迭代器 - 用
distance(it1,it2)
函数返回两个迭代器之间的距离,就转化为元素下标=当前迭代器位置-容器头部,因为计数是从1开始,最后结果记得+1,即distance(v.begin(),it)+1;
附上代码
#include<bits/stdc++.h>
#define int long long
#define lowbit(x) (x &(-x))
using namespace std;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=1e5+5;
typedef long long ll;
typedef pair<int,int> PII;
signed main(){
int n;
vector<int> v;
while(cin>>n){
v.push_back(n);
char a=getchar();
if(a!=' ')
break;
}
vector<int>::iterator it=find(v.begin(),v.end(),250);
cout<<distance(v.begin(),it)+1<<endl;
return 0;
}