与7相关的数的排序
时间限制:1秒 内存限制:128M
题目描述
鸭鸭对与7相关的数字着迷,有一天它得到了一组数据。它希望对这组数据进行如下操作:将与7相关的数从小到大排在前面,而与7无关的数字从小到大排在后面。请你帮助鸭鸭输出经过排序后的数列。与7相关的数是指能够被7整除或末尾含有数字7的数。
输入描述
第一行输入n,n<=100
第二行输入n个整数,即鸭鸭得到的数据,每个整数不大于10000。
输出描述
输出一行排好序的数字,数字与数字之间用一个空格隔开,先输出与7相关的数,再输出与7无关的数。
样例
输入
10
17 20 34 90 15 21 49 14 50 8
输出
14 17 21 49 8 15 20 34 50 90
解题思路:
- 首先,根据题目要求,需要将与7相关的数从小到大排在前面,与7无关的数字从小到大排在后面。
- 所以,首先创建两个空列表,一个用来存放与7相关的数,一个用来存放与7无关的数。
- 遍历输入的整数列表,将符合条件的数字分别放入对应的列表中。
- 分别对两个列表进行排序,然后合并成一个新的列表。
5 最后,将新的列表输出。
代码实现如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> related, unrelated;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
if (num % 7 == 0 || num % 10 == 7) {
related.push_back(num);
} else {
unrelated.push_back(num);
}
}
sort(related.begin(), related.end());
sort(unrelated.begin(), unrelated.end());
for (int i = 0; i < related.size(); i++) {
cout << related[i] << " ";
}
for (int i = 0; i < unrelated.size(); i++) {
cout << unrelated[i] << " ";
}
cout << endl;
return 0;
}
- 声明一个整数变量n,用于存储输入的整数个数。
- 声明两个vector容器related和unrelated,分别用于存放与7相关和与7无关的数。
- 使用一个循环,遍历输入的n个整数。
- 根据题目要求,将符条件的数字分别加入到related和unrelated容器中。
5 使用sort函数对related和unrelated进行升序排序。 - 使用个循环,分别历related和unrelated容器,输出后的数字。
7.后,输出换行符。