Помощь - Поиск - Пользователи - Календарь
Полная версия: Цикл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
йцукен
Сдрасте

даны 2 числа , "a" и "b" , нужно найти есть ли в этих 2 - ух числах одинаковые цифры , например
256 и 216 , совпадающими буду 2 и 6 , заранее неизвестно какой длины число , в этом собственно и проблема.
есть идея сделать цикл repeat и в нём делить числа (mod) но как правильно это сделать никак не пойму , помогите пожалуйста smile.gif
Michael_Rybak
сделай цикл for от 0 до 9, и внутри него проверяй, есть ли такая цифра в каждом из чисел.
мисс_граффити
а они должны быть на одинаковых местах? или не обязательно?
йцукен
цифры должны быть на одинаковых местах , и нам заранее низвестно СКОЛЬКО цифр в числе и КАКИЕ они , как я понял нужно использовать mod но вот на что именно делить ...
volvo
На 10, естественно... Проходишь по двум числам одновременно деля их на 10, и смотришь, равны ли остатки от деления. Если равны - то и выводишь их на печать...

Цикл заканчивается, когда одно из чисел становится равным 0...
йцукен
вот что у меня получилось

Код

program awda;
var a,b:integer;
begin
readln(a);
readln(b);
repeat
a:=a mod 10;
b:=b mod 10;
if a = b then writeln('da');
until a or b <> 0
end.
volvo
Я бы на твоем месте почитал книжку (в частности - о работе с логическими выражениями, ибо оно у тебя записано вообще неправильно)...

var
a, b: integer;
begin
readln(a);
readln(b);
repeat
if (a mod 10) = (b mod 10) then writeln(a mod 10);
a := a div 10; b := b div 10;
until (a = 0) or (b = 0)
end.

Так лучше?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.