Задачи на целые числа без использования цикла
Дано
трехзначное целое число. Удалить в этом числе одну цифру так, чтобы осталось
максимально возможное число. (порядок цифр не должен измениться)
Для решения этой задачи рассмотрим
варианты комбинаций цифр в числе.
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;
}
|
|