Предмет: Информатика, автор: informatik1337

Добрый вечер! Товарищи информатики, помогите пожалуйста с задачей на С++. Требуется написать программу, которая из цифр двух натуральных чисел создает наименьшее возможное число, сохраняя при этом порядок следования цифр в этих числах.


asv40707: как я понял, надо просто для каждого разряда найти минимальную цифру?
asv40707: или просто в конечном числе при удалении цифр одного из чисел, останется другое?
Valery2020vs2021: Не очень поняла что нужно сделать?Можете написать понятнее
asv40707: я в ответе код написал, попробуйте на примере
Valery2020vs2021: Мы пишем коды по другому,и библиотека не такая,я могу написать,но не понимаю условие,что нужно сделать?
Valery2020vs2021: Имею ввиду используются все цифры, только менять расположение?
asv40707: Смотрите как я понял, надо взять одно число и туда между его цифрами вставлять цифры другого числа, таким образом, что каждое следующяя цифра числа должна стоять правее всех предыдущих
asv40707: Правее всех предыдущих цифр второго числа
Valery2020vs2021: Ну это как вариант,но всё равно условие не конкретное
asv40707: Согласен, сам не очень понял что хотят

Ответы

Автор ответа: asv40707
1

Ответ:

Объяснение:

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <vector>

#include <queue>

#include <cstdio>

#include <algorithm>

#include <string>

#include <cmath>

#include <iterator>

#include <map>

#include <set>

using namespace std;

int32_t main()

{

#ifdef _DEBUG

//freopen("input.txt", "r", stdin);

#endif // _DEBUG

int a, b;

cin >> a >> b;

vector<int> ans;

vector<int> b1;

int r = a;

while (r > 0)

{

 ans.push_back(r % 10);

 r /= 10;

}

r = b;

while (r > 0)

{

 b1.push_back(r % 10);

 r /= 10;

}

int now = 0;

reverse(ans.begin(), ans.end());

reverse(b1.begin(), b1.end());

for (int i = 0; i < ans.size() && now < b1.size(); i++)

{

 

 if (ans[i] > b1[now])

 {

  ans.insert(ans.begin() + i, b1[now]);

  now++;

 }

}

 

for (; now < b1.size(); now++)

{

 ans.push_back(b1[now]);

}

for (auto i : ans)

{

 cout << i;

}

}

Похожие вопросы
Предмет: Математика, автор: sisi1111111111