解题思路:
c++用容器写简单粗暴,输入的n表示换行次数,用一个COUNT表示已经输入的换行次数,这跟单例的计数(忘了具体叫什么名字了)比较像
然后用<algorithm>里面的sort函数来进行从小到大的排序,或者加一个greater<int>从大到小也行
重复数的化因为已经排过序了,所以跟后面一个比就行了,如果跟后面的重复了,这个就是那个重复数
断点数同理,跟后一个比,因为ID数应该是连续的,所以两数差值应该小于1,如果两数差值大于1,那么这两个数之间就有一个断点数
注意事项:
参考代码:
// 蓝桥杯2013年第四届真题-错误票据
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n = 0;
int i = 0;
int copy_num = 0;
int skipped_num = 0;
int COUT = 0;
vector<int> num;
cin >> n;
while (cin >> i)
{
num.push_back(i);
if (cin.get() == '\n')
{
COUT++;
if (COUT == n)
{
break;
}
}
}
sort(num.begin(), num.end());
for (auto it = num.begin(); it != num.end(); it++)
{
if ((*it) == (*(it + 1)))
{
copy_num = *it;
}
if ((*(it + 1)) - (*it) > 1)
{
skipped_num = (*it) + 1;
}
}
cout << skipped_num << " " << copy_num << endl;
return 0;
}
0.0分
0 人评分
字符串输入输出函数 (Java代码)浏览:1495 |
C语言训练-排序问题<2> (C++代码)浏览:933 |
程序员的表白 (C语言代码)浏览:705 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:509 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:1063 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:683 |
C二级辅导-进制转换 (C语言代码)浏览:749 |
C语言程序设计教程(第三版)课后习题10.7 (C++代码)浏览:665 |
管理学院的人数 (Java代码)浏览:560 |
简单的a+b (C语言代码)浏览:536 |