Предмет: Информатика, автор: 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;

}

}

Похожие вопросы
Предмет: Английский язык, автор: milaska12
ПЕРЕВОДИТЕ ПОЖАЛУЙСТА ТЕКСТ НА АНГЛИЙСКИЙ ТЕ КТО ЗНАЕТ НА АНГЛИЙСКОМ!!!
Город Петрозаводск является нашей столицей, это очень старый и северный город России. Он является ровесником Санкт- Петербурга.У нас в городе до сих пор можно встретить название улиц на двух языках: русском и финском.Мы же пока остановимся в Петрозаводске. Как только Вы вышли с вокзала, сразу перед Вами предстанет полукруглая площадь, и носит она имя первого космонавта Гагарина. И уже от этой площади к набережной Онежского озера устремляется наш главный проспект, который до сих пор носит имя Ленина.На проспекте Ленина располагается здание Петрозаводского Государственного университета.Кроме университета, в городе еще имеется педагогическая академия, консерватория, много училищ и техникумов. В последние годы появились и платные вузы. Можно сказать, что наш город-это город студентов. Напротив университета сейчас расположена просто красивая композиция с фонтаном, со сверкающим шариком и колонной с корабликом. Летом здесь очень уютно, вокруг море цветов. Именно здесь начинается Студенческий бульвар. Сейчас это место стало любимым для горожан, здесь назначают встречи студенты и влюбленные парочки.На проспекте еще располагается красивая гостиница, и носит она название «Северная». Причем это здание можно увидеть издалека, у нее очень необычный цвет фасада.В Петрозаводске имеется Речной вокзал, с которого Вы можете осуществить незабываемое путешествие по Онего, на остров Кижи.Онего-это финское название озера, в переводе означает «говорливое».Каждый год, в конце июня, город празднует праздник-День города, праздник проходит именно на набережной.При выходе из Дворца, молодожены направляются прямо к беседке. Народное название ее- «Ротонда влюбленных», именно здесь они клянутся в огромной и долгой любви к друг другу.
Предмет: Математика, автор: sisi1111111111