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