Помощь - Поиск - Пользователи - Календарь
Полная версия: Числовая Задача!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Константин
!help.gif Мне надо решить эту задачу на Паскале и без оператора цикла for!!! 1.gif

Напечатать в возрастающем порядке все трёхзначные числа, в десятичной записи которой нет одинаковых цифр. unsure.gif

Зарание Огромное Спасибо! !zdarov.gif
volvo
Цитата
без оператора цикла for

Рекурсию используй...
Гость
Цитата(volvo @ 20.09.2007 18:10) *

Рекурсию используй...

Это как???
Я такого не изучал!
мисс_граффити
ну пользуйся циклом while
и кричать так не надо
volvo
Мало ли что ты не изучал...

Задание поставлено как? Не использовать цикл FOR? Хорошо, есть цикл While... Есть Repeat... А где гарантия, что ты (или твой преподаватель) не скажешь, что нельзя вообще пользоваться циклами? Никакими... Поверь, ты не первый, кто задает вопросы на этот форум. И в основном так и происходит... ПОТОМ выясняется, что нельзя еще это, и это, и вот это...

Поэтому я тебе предложил вариант который не использует само понятие "цикл"... Вообще. Надо - покажу, как...
Гость
Цитата(volvo @ 20.09.2007 20:08) *

Мало ли что ты не изучал...

Задание поставлено как? Не использовать цикл FOR? Хорошо, есть цикл While... Есть Repeat... А где гарантия, что ты (или твой преподаватель) не скажешь, что нельзя вообще пользоваться циклами? Никакими... Поверь, ты не первый, кто задает вопросы на этот форум. И в основном так и происходит... ПОТОМ выясняется, что нельзя еще это, и это, и вот это...

Поэтому я тебе предложил вариант который не использует само понятие "цикл"... Вообще. Надо - покажу, как...

Конечно надо! Можешь показать как решать эту задачу.
volvo
Без циклов - так:

procedure print(n: integer);
var n1, n2, n3: integer;
begin
n1 := n div 100; n2 := (n div 10) mod 10; n3 := n mod 10;
if (n1 - n2) * (n1 - n3) * (n2 - n3) <> 0 then writeln(n);

if n < 999 then print(n + 1);
end;

begin
print(102);
end.

Гость
Цитата(volvo @ 20.09.2007 21:58) *

Без циклов - так:

procedure print(n: integer);
var n1, n2, n3: integer;
begin
n1 := n div 100; n2 := (n div 10) mod 10; n3 := n mod 10;
if (n1 - n2) * (n1 - n3) * (n2 - n3) <> 0 then writeln(n);

if n < 999 then print(n + 1);
end;

begin
print(102);
end.



!zdarov.gif Спасибо тебе ОГРОМНОЕ! Ты реально помог!
Гость
Цитата(Гость @ 20.09.2007 22:12) *

!zdarov.gif Спасибо тебе ОГРОМНОЕ! Ты реально помог!

У меня к тебе последний вопрос: А почему "print(102)" - указанно число 102 ???
volvo
А потому что это - первое трехзначное число, в котором все цифры разные...
Гость
Цитата(volvo @ 20.09.2007 23:11) *

А потому что это - первое трехзначное число, в котором все цифры разные...

Благодарю! Просто нужно было знать это чтобы обьяснить если что....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.