Найти и вывести ** экран все целые числа из промежутка от 1 до K, в десятичной записи...

0 голосов
74 просмотров

Найти и вывести на экран все целые числа из промежутка от 1 до K, в десятичной записи которых есть цифра 7. K вводится с клавиатуры
Pascal ABC


Информатика (725 баллов) | 74 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Функция isSevenHere возвращает истину, если в числе есть семерка, и ложь - если ее нет. В цикле for перебираем все значения от 1 до K (число, введенное с клавиатуры), и выводим на экран только те, где есть семерка.

Код программы:

function isSevenHere(number : integer) : boolean;var digit : integer;begin  Result := true;  while (number > 0) do  begin        digit := number mod 10;    if (digit = 7) then            exit;    number := number div 10;  end;  Result := false;end;
var i,k :integer;begin  write('Введите k: ');  readln(k);
  for i := 1 to k do    if (isSevenHere(i) = true) then      write(i,' ');end.


image
(1.4k баллов)
0

а как можно заменить exit?

0

exit - прерывает выполнение функции, если была найдена семерка (тогда результат функции будет true). Можно пойти от обратного - изначально посчитать, что Result := false, а если нашли семерку, то выполнить Result := true. Тогда exit можно не использовать.

0

спасибо))