Найти и вывести на экран все целые числа из промежутка от 1 до K, в десятичной записи которых есть цифра 7. K вводится с клавиатуры Pascal ABC
Answers & Comments
liris22
Функция 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.
liris22
exit - прерывает выполнение функции, если была найдена семерка (тогда результат функции будет true). Можно пойти от обратного - изначально посчитать, что Result := false, а если нашли семерку, то выполнить Result := true. Тогда exit можно не использовать.
Answers & Comments
Код программы:
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.