Задачи на целые числа без использования цикла
Дано четырехзначное натуральное число. Удалить
из записи этого числа все чётные цифры (0 – четная цифра).
Для
того, чтобы к числу M добавлять
цифру a к справа необходимо выполнить
действия M:=M*10+a; (Например: чтобы
к числу 56 добавить справа цифру 3, надо выполнить 56*10+3=563)
Отсюда
и получается алгоритм: выделяем слева цифры числа и если очередная цифра
нечетна, то добавляем ее справа к числу M.
Только в начале программы не забыть присвоить 0 числу M, иначе
там может оказаться какой то числовой мусор и мы не получим, что хотим.
Program A1_11;
Var
N,M,a:integer;
begin
readln(N);
M:=0;
a:=N div 1000;
if (a mod 2<>0) then M:=M*10+a;
a:=(N div 100) mod 10;
if (a mod 2<>0) then M:=M*10+a;
a:=(N div 10) mod 10;
if (a mod 2<>0) then M:=M*10+a;
a:=N mod 10;
if (a mod 2<>0) then M:=M*10+a;
writeln(M);
readln;
end.
|
//Program A1.11
#include
<iostream>
using
namespace std;
int main()
{ int n,m=0,a,b,c,d;
cin>>n;
a=n%10;
b=(n/10)%10;
c=(n/100)%10;
d=(n/1000)%10;
if(d%2!=0) m=10*m+d;
if(c%2!=0) m=10*m+c;
if(b%2!=0) m=10*m+b;
if(a%2!=0) m=10*m+a;
cout<<m<<endl;
return 0;
}
|
|