7) дано произвольное натуральное число, в котором все цифры различны. удалить все цифры между максимальной и минимальной цифрой. можно сделать в паскале ,симантике ,,с++
// PascalABC.NET 3.3, сборка 1562 от 02.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var ИсходноеЧисло:=ReadlnString('Введите исходное целое число:'); var МассивЦифрЧисла:=ИсходноеЧисло.ToCharArray; var МестоМаксЦифры:=МассивЦифрЧисла.IndexMax; var МестоМинЦифры:=МассивЦифрЧисла.IndexMin; If МестоМинЦифры>МестоМаксЦифры then Swap(МестоМинЦифры,МестоМаксЦифры); ИсходноеЧисло:=ИсходноеЧисло?[:МестоМинЦифры+1]+ ИсходноеЧисло?[МестоМаксЦифры+2:]; Writeln('Результат замены: ',ИсходноеЧисло) end.
Пример Введите исходное целое число: 1402956387 Результат замены: 1456387
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
int imin = 0, imax = 0;
char Min = '9'+ '0'; char Max = '0'-'0';
for (int i = 0; i < s.length(); ++i)
{
if (s[i] < Min)
{
Min = s[i];
imin = i;
}
if (s[i] > Max)
{
Max = s[i];
imax = i;
}
}
s.erase(1 + min(imax, imin), abs(imax-imin) - 1);
cout << s;
}
// Внимание! Если программа не работает, обновите версию!
begin
var ИсходноеЧисло:=ReadlnString('Введите исходное целое число:');
var МассивЦифрЧисла:=ИсходноеЧисло.ToCharArray;
var МестоМаксЦифры:=МассивЦифрЧисла.IndexMax;
var МестоМинЦифры:=МассивЦифрЧисла.IndexMin;
If МестоМинЦифры>МестоМаксЦифры then Swap(МестоМинЦифры,МестоМаксЦифры);
ИсходноеЧисло:=ИсходноеЧисло?[:МестоМинЦифры+1]+
ИсходноеЧисло?[МестоМаксЦифры+2:];
Writeln('Результат замены: ',ИсходноеЧисло)
end.
Пример
Введите исходное целое число: 1402956387
Результат замены: 1456387