Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Помогите с решением задачи, пожалйста.


Автор: @IgoriX@ 9.11.2004, 18:14
Дано произвольное целое положительное число K . Вывести новое число, полученное из K вычеркиванием всех четных цифр (например, 234653=>353). Процедуры и функции работы со строками не использовать.

Автор: Mad 9.11.2004, 18:27
@IgoriX@
Поясни сто значит не использовать сроковые функции ?
Подразумевается что число задоно как int и работать можно тока с int ?

Автор: maxim1000 9.11.2004, 18:41
Код

int func(int x)
{
 int ReversedResult=0;
 int Result=0;
 while(x)
 {
   if(x%2)
     ReversedResult=10*ReversedResult+x%10;
   x/=10;
 }
 while(ReversedResult)
 {
   Result=10*Result+ReversedResult%10;
   ReversedResult/=10;
 }
 return Result;
}

первый while решает задачу: берет младшую цифру x и, если она нечетная, добавляет ее в конец ReversedResult, возникает только одна проблема: цифры получаются в обратном порядке
второй while переворачивает число

Автор: Adil' 9.11.2004, 18:49
Код
 int s=random(0x7FFFFFFF);
 printf("\n%d =>",s);
 int o=0;
 int pow_=1;
 while(s)
 {
   int dig=s%10;
   if(dig%2)
   {
     o+=dig*pow_;
     pow_*=10;
   }
   s=s/10;
 }
 printf(" %d",o);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)