iİnformatikanın məktəbdə tədrisi

З-11

Задачи на целые числа без использования цикла


Дано четырехзначное натуральное число. Удалить из записи этого числа все чётные цифры (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;

}