Дано трехзначное целое число. Удалить в этом числе одну цифру так, чтобы осталось максимально возможное число. (порядок цифр не должен измениться)
Для решения этой задачи рассмотрим варианты комбинаций цифр в числе.
1) 123 надо удалить первую цифру;
2) 132 надо удалить первую цифру;
3) 213 надо удалить вторую цифру;
4) 231 надо удалить третью цифру;
5) 312 надо удалить вторую цифру;
6) 321 надо удалить третью цифру;
7) 221 надо удалить первую цифру (можно и вторую);
8) 223 надо удалить первую цифру;
9) 322 надо удалить вторую цифру (можно и третью);
Проанализировав все эти случаи, приходим к алгоритму - выделяем цифры числа, а затем выполняем проверки и действия:
1) Если первая цифра меньше или равна второй, составляем число из второй и третьей цифры;
2) Если вторая цифра меньше или равна третьей, составляем число из первой и третьей цифры;
3) В противном случае, составляем число из первой и второй цифры.
Program A1_14; Var n,a,b,c,m: integer; begin readln(n); a:=n mod 10; b:=(n div 10) mod 10; c:=(n div 100) mod 10; if c<=b then m:=10*b+a else begin if b<=a then m:=10*c+a else m:=10*c+b; end; writeln(m); readln; end. |
//Program A1.14 #include <iostream>
using namespace std;
int main() { int n,a,b,c,m; cin>>n; a=n% 10; b=(n / 10) % 10; c=(n /100) % 10; if (c<=b) m=10*b+a; else { if (b<=a) m=10*c+a; else m=10*c+b; } cout<<m<<endl; return 0; } |