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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 10:36   #1
альбертоо
 
Регистрация: 05.12.2011
Сообщений: 9
По умолчанию олимпиада

дано четырехзначное целое положительНое число. после удаления первой цифры это число уменьшилось в N раз. вывести в порядке убывания все такие числа. формаи входных данных содержит число N. выходной файл содержит в отдельной строке такие числа. помогите плиз..
альбертоо вне форума Ответить с цитированием
Старый 05.12.2011, 11:14   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Тоесть чисел надо вводить много или же одно число и в порядке убывания?
если много, то массивы использовать можно? ( или там строго без отсортировать числа?).
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 05.12.2011, 11:20   #3
альбертоо
 
Регистрация: 05.12.2011
Сообщений: 9
По умолчанию

одно число)
альбертоо вне форума Ответить с цитированием
Старый 05.12.2011, 11:28   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

решение для всех мыслимых N:

http://ideone.com/hvyAH
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 05.12.2011 в 11:43. Причина: теперь в порядке убывания ) UDP: какие-то глюки в fpc, заменил на gpc
veniside вне форума Ответить с цитированием
Старый 05.12.2011, 11:30   #5
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Покатит?

Код:
Program chislo;
Uses crt;
var
  s:string;
  number,cod: integer;
  n, i: byte;
  c: char;
  begin
clrscr;
Write('Vvedite 4islo: ');
readln(s);
Delete(s,1,1);
n:=length(s) div 2;
for i:=1 to n do begin
    c:=s[i];
    s[i]:= s[length(s)-i+1];
    s[length(s)-i+1]:=c;
end;
writeln(s);
readln;
end.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 05.12.2011, 11:37   #6
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Вот так можно:
Код:
  for i:=1 to 9 do
    if 1000*i mod (n-1)=0 then writeln(i,1000*i div (n-1));
Смысл в том, что если i - это первая цифра, то можно решить уравнение для числа, выражаемого остальными тремя, причем в целых числах. Перебираем все значения i в цикле от 1 до 9. Если уравнение разрешимо - решаем и выводим все.

P.S.
упс, я далеко не первый.. ))

P.P.S.
Не, ребят, это несерьезно - перебирать в такой задаче все произведения - это перебор с перебором )).
Предпочитаю на "ты".

Последний раз редактировалось TinMan; 05.12.2011 в 11:47.
TinMan вне форума Ответить с цитированием
Старый 05.12.2011, 11:46   #7
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Цитата:
P.S.
упс, я далеко не первый.. ))
Ну чего, дело не в том же, а по сути я понял как улучшить свой код .

Ой, а таки ошибся.
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 05.12.2011 в 11:50.
Leshii вне форума Ответить с цитированием
Старый 05.12.2011, 11:47   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> это перебор с перебором

согласен ) объединил код от TinMan со своим, и добавли проверку на 4-х значность

http://ideone.com/hrXiV
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 05.12.2011 в 12:17.
veniside вне форума Ответить с цитированием
Старый 05.12.2011, 12:24   #9
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
и добавли проверку на 4-х значность
Зачем? если первая цифра ненулевая (цикл от 1 до 9), то она не нужна ).
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 05.12.2011, 18:16   #10
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Зачем?

без неё код выдаёт кучу 5-ти и 3-х значных чисел.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Олимпиада Кажымурат Помощь студентам 0 22.11.2011 16:16
олимпиада lost9306 Паскаль, Turbo Pascal, PascalABC.NET 1 17.04.2010 13:10
Олимпиада по ИТ Telon Помощь студентам 7 25.03.2010 19:29
Олимпиада Cannibal Microsoft Office Access 0 25.03.2010 18:16
Олимпиада Patrick Паскаль, Turbo Pascal, PascalABC.NET 12 12.10.2009 13:36