Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <random>
- #include <time.h>
- #include <utility>
- #include <string>
- #include <vector>
- #include <algorithm>
- using namespace std;
- pair<int, pair<int, string>> convert_to_bin(int);
- int main() {
- srand(time(0));
- setlocale(LC_ALL, "Rus");
- int n, maxi = -1;
- vector <pair<int, pair<int, string>>> vec;
- cout << "Введите кол-во чисел: ";
- cin >> n;
- for (int i = 0; i < n; i++) {
- int m;
- cout << i + 1 << ") m = ";
- m = rand() % 1000;
- pair <int, pair<int, string>> converted_num = convert_to_bin(m);
- vec.push_back(converted_num);
- cout << m << " --> " << converted_num.first << ' ' << converted_num.second.second << '\n';
- maxi = max(maxi, converted_num.first);
- }
- cout << endl << "Числа/о, в двоичном представлении которого больше всего единиц: " << maxi << '\n';
- for (pair<int, pair<int, string>> p : vec) {
- if (p.first == maxi)
- cout << p.second.first << " --> " << p.second.second << '\n';
- }
- return 0;
- }
- pair<int, pair<int, string>> convert_to_bin(int integer) {
- string converted_s = "";
- int counter = 0;
- int copy_i = integer;
- while (integer >= 1) {
- if (integer % 2 == 1) counter++;
- converted_s += (integer % 2) + '0';
- integer = integer / 2;
- }
- reverse(converted_s.begin(), converted_s.end());
- return make_pair(counter, make_pair(copy_i, converted_s));
- }
Add Comment
Please, Sign In to add comment