2018北理计算机夏令营上机题第一题
题目一:
描述:输入一串随机的数,用逗号隔开。如果有重复数字就输出最靠后的一个,没有重复的就输出-1。
如输入:1,2,3,4,4,3,2,1 输出:1
输入:1,2,3,4,5,6,7,8 输出:-1
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
cin>>s;
int num[100];
int size=0;
int sum=0;//存储当前判断的数字
int flag=0;
//将字符串转化为int数组
for(int i=0;i<s.size();i++){
if(s[i]==','){
continue;
}
sum=0;
while(s[i]>='0'&&s[i]<='9'){
sum=sum*10+(s[i]-'0');
i++;
}
num[size]=sum;
size++;
}
//判断重复与否
for(int j=size-1;j>=0;j--){
for(int i=0;i<j;i++){
if(num[i]==num[j]){
cout<<num[j]<<endl;
flag=1;
break;
}
}
if(flag==1){
break;
}
}
if(flag==0){
cout<<-1<<endl;
}
return 0;
}
本文详细解析了2018年北京理工大学计算机夏令营上的一道上机题,题目要求从一组由逗号分隔的随机数中找出最后一个重复出现的数字,若无重复则输出-1。通过字符串转数组及双重循环比对的方法,实现了题目的要求。
1610

被折叠的 条评论
为什么被折叠?



