Задача, состав те программу в паскале! 1)Дано трехзначное число. Определить количество всех различных трехзначных чисел, которые можно составить из цифр этого числа. 2) Даны три числа. Подсчитать количество четных чисел . Заран...

Задача, состав те программу в паскале! 1)Дано трехзначное число. Определить количество всех различных трехзначных чисел, которые можно составить из цифр этого числа. 2) Даны три числа. Подсчитать количество четных чисел . Заранее спасибо !
Гость
Ответ(ы) на вопрос:
Гость
Пожалуйста, я сегодня добрый :) Первая задача.   var   s, mn: set of integer;   f: boolean;   k, n, c, i, j, kol: integer; begin   writeln('Введите трехзначное число:');   repeat readln(n) until n in [100..999]; // защита от "дурака"   k := n;    // записываем число, чтобы вывести на результат     while n <> 0 do   begin           // пока число не станет равно нулю...     c := n mod 10;   // последняя цифра числа     include(s, c);   // вносим эту цифру в множество     n := n div 10    // у числа отсекаем рассмотренную цифру   end;     for i := 100 to 999 do   begin    // рассматриваем все трехзначные числа     mn := s; j := i; f := true;  // все обнуляем     while j <> 0 do     begin    // пока рассматриваемое число не будет равно нулю       c := j mod 10;    // последняя цифра числа       if c in mn then exclude(mn, c) else f := false;    // если число во множестве, то убираем его оттуда, чтобы избежать повторений, иначе - не рассматриваем его.       j := j div 10;    // у числа отсекаем рассмотренную цифру     end;     if f then begin inc(kol); write(i:6) end    // если проверка прошла успешно, то выводим число на экран и прибавляем значение переменной-счетчика!   end;       writeln; writeln('Из ', k, ' можно составить ', kol, ' чисел!');   // выводим результат   readln; end.   ========================================================== А вот вторая, комменты к ней писать было уже лень:   var   k, i, n, kol: integer; begin   writeln('Количество трехзначных чисел, которые вы далее введете?');   repeat readln(k) until k in [1..10];   for i := 1 to k do   begin     writeln('Введите ', i, ' трехзначное число:');     repeat readln(n) until n in [100..999];     while n <> 0 do     begin       if ((n mod 10) mod 2 = 0) then inc(kol);       n := n div 10;     end;   end;   writeln('Количество четных чисел = ',kol);   readln   end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы