Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Последовательность чисел

Автор: medved777 13.02.2007 12:46

Родные мои, помогите пожалуйста! Не могу даже алгоритм набросать. Дайте идею. Надеюсь только на вашу помощь.
Задача: Напечатать в возрастающей последовательности все трехзначные числа, в десятичной записи которых нет одинаковых цифр. Операцией деления не пользоваться.

Автор: volvo 13.02.2007 14:00

Ну, если нельзя пользоваться делением, то переводи число в строку (процедурой str), и сравнивай символы полученной строки между собой на равенство...

Автор: medved777 13.02.2007 14:52

Спасибо. Это понятно. Так я определю числа с одинаковыми цифрами. А что дальше?

Автор: volvo 13.02.2007 14:54

blink.gif

Цитата
Задача: Напечатать в возрастающей последовательности все трехзначные числа
Вот и печатай, если число НЕ содержит одинаковых цифр (т.е., если оно этот самый тест не прошло)... Что еще надо?

Автор: Perfez 13.02.2007 15:01

 
var
a:integer;
s:string[3];
Begin
For a:=100 to 999 do
Begin
Str(a,s);
If (s[1]<>s[2]) and (s[2]<>s[3]) and (s[1]<>s[3]) then WriteLn(a);
End;
End.


Автор: medved777 13.02.2007 15:06

Огромное-преогромное спасибо. Просто я затупила маленько. Все понятно.

Автор: volvo 13.02.2007 15:10

Вот так, кстати, будет работать гораздо быстрее:

var
a, b, c: integer;
begin
for a := 1 to 9 do
for b := 0 to 9 do begin
if a <> b then
for c := 0 to 9 do
if (c <> a) and (c <> b) then writeln(a, b, c);
end;
end.