Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2015, 08:07   #1
FlayGlam
Пользователь
 
Регистрация: 21.12.2015
Сообщений: 38
По умолчанию Числа с разными цифрами

Дано некоторое количество целых чисел. Каждое число лежит в интервале от 0 до 2 миллиардов. Числа отделяются друг от друга пробелами и/или переводами строк.
В ответе выведите через пробел эти же числа, но оставив только те из них, в которых все цифры различны

Пример входных данных:
12 242 3 88

Пример результата:
12 3
FlayGlam вне форума Ответить с цитированием
Старый 21.12.2015, 09:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

язык программирования? и поясните, в чём для Вас сложность решения данной задачи?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2015, 09:58   #3
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Код:
bool check(const int &x)
{
 int buffer1;
 int buffer2;
 unsigned int i;
 unsigned int j;
 buffer1=x;
 i=0;
 do
 {
  buffer2=x;
  j=0;
  do ()
  {
    if (i!=j)
    {
     if ((buffer1%10)==(buffer2%10))
     {
      return false;
     }
    }
    buffer2/=10;
    ++j;
  } while (buffer2!=0)
  buffer1/=10;
  ++i;
 } while (buffer!=0);
 return true;
}
,
Код:
function check(x:integer):boolean;
var buffer1, buffer2:integer;
    i.j:integer;
    r:boolean;
begin
     r:=true;
     buffer1:=x;
     i:=0;
     do
       buffer2:=x;
       j:=0;
       do
         if i<>j then if (buffer1 mod 10)=(buffer2 mod 10) then begin
                                                                     r:=false;
																	 break;
																end;
         j:=j+1;
       whille (buffer2<>0);
	   if not(r) then break;
       buffer:=buffer div 10;
       i:=i+1;
     while (buffer1<>0);
     check:=r;
end;
. Юзай одну из этих функций для проверки каждого числа.
taras-proger вне форума Ответить с цитированием
Старый 21.12.2015, 14:40   #4
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Есть ещё решение. Так как разных цифр может быть максимум 10, то можно переписать, избавившись от квадратичности:
Код:
bool check(int x)
{
 bool Flags[10]={false, false, false, false, false, false, false, false, false, false};
 int Digital;
 do
 {
  Digital=x%10;
  if (Flags[Digital])
  {
   return false;
  }
  Flags[Digital]=true;
  x/=10;
 } while (x!=0);
 return true;
}
,
Код:
function check(x:integher):boolean;
var buffer:integer;
    r:boolean;
    Digital:integer;
    Flags=array[0..9] of boolean=(false, false, false, false, false, false, false, false, false, false);
begin
     r:=true;
     buffer:=x;
     do
       Digital:=buffer mod 10;
       if Flags[Digital] then begin
                                   r:=false;
								   break;
                              end;
       buffer:=buffer div 10;
     while (buffer<>0);
     check:=r;
end;
.
taras-proger вне форума Ответить с цитированием
Старый 21.12.2015, 15:04   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Тарас, что это за ужас? Второй код на каком языке?
иницилизировать локальные переменные в описании нельзя.
Flags true никогда в вашем коде не становится.
оператора do while() в Паскале нет.
ну и т.д. и т.п.

Скажите, вот зачем Вы пишете код, который не проверяете?
Вы так в нём уверены, что проверки, по вашему, не нужно?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметические действия с цифрами числа rwss gle Паскаль, Turbo Pascal, PascalABC.NET 27 30.04.2015 05:05
Найти все трехзначные числа, квадраты которых оканчиватюся тремя цифрами, которые и составляют искомые числа (на ABC pascal) Роял Паскаль, Turbo Pascal, PascalABC.NET 4 29.01.2015 21:09
запись любого целого числа n (n<3999) арабскими цифрами перевести в запись римскими цифрами (на языке C) qazse Помощь студентам 1 24.11.2011 12:05
Квадраты нескольких 3-xзначных чисел оканчиваются 3 цифрами, которые составляют исходные числа. Найти эти числа. Паскаль zig1 Паскаль, Turbo Pascal, PascalABC.NET 2 12.10.2011 09:32
Заполнения массива разными цифрами у VB legendary Помощь студентам 1 30.11.2010 18:07