Другие языки программирования и технологии

Помощь Паскаль

вводится трехзначное натуральное число. вывести число, полученное из исходного удалением всех четных цифр. если все цифры были четные - вывести 0. например, введено 456, вывести 5; введено 655; вывести 55. сделать БЕЗ циклов
ПK
Паша Kozeev
345
Зависит от пройденной темы, вот еще способ с использование строки, так как не сказано какой тип числа, а просто строкой тоже можно

program t;
var
x, y : string;
begin
ReadLn(x);
if (x[1]='1') or (x[1]='3') or (x[1]='5') or (x[1]='7') or (x[1]='9') then y := y + x[1];
if (x[2]='1') or (x[2]='3') or (x[2]='5') or (x[2]='7') or (x[2]='9') then y := y + x[2];
if (x[3]='1') or (x[3]='3') or (x[3]='5') or (x[3]='7') or (x[3]='9') then y := y + x[3];
if y='' then WriteLn('0') else WriteLn(y);
end.

или если шаришь в битах

program t;
var
x, y : string;
begin
ReadLn(x);
if (byte(x[1]) and 1) = 1 then y := y + x[1];
if (byte(x[2]) and 1) = 1 then y := y + x[2];
if (byte(x[3]) and 1) = 1 then y := y + x[3];
if y='' then WriteLn('0') else WriteLn(y);
end.
Жанибек Машанов
Жанибек Машанов
85 850
Лучший ответ
Без циклов? Ну лови без циклов:

function OnlyOdds(k:integer):integer;
var n:integer;
begin
OnlyOdds:=0;
if k=0 then
exit;
n:= k mod 10;
if odd(n) then
OnlyOdds:=OnlyOdds(k div 10)*10+n
else
OnlyOdds:=OnlyOdds(k div 10);
end;
Максим Ващенко
Максим Ващенко
81 649
С помощью div и mod выделяй каждую цифру. Если цифра нечетная то выводи ее в строку и включай счетчик. В конце если счетчик нулевой, то выводи 0
Var a,i,k:integer;
Begin
Writeln('Введите трехзначное число: ');
Readln(a);
k:=0;
i:=a div 100;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
i:=a div 10 mod 10;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
i:=a mod 10;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
if k=0 then Write(0);
Readln;
End.
Максим Ващенко Тогда число перевернется. Введем 345, получим 54. Некрасивенько.
примени div и mod
Катаев Юрий
Катаев Юрий
95 951