Числа - Pascal (90354)
Формулировка задачи:
напишите решение в паскале получить все,не превышающего заданного числа N,которые делятся без остатка на все свои цифры
Решение задачи: «Числа»
textual
Листинг программы
var t,i,n:longint; a:array[1..10]of integer; k,f,j:integer; begin writeln('vvedite n'); readln(n); for i:=1 to n do begin k:=0; t:=i; f:=0; repeat inc(k); a[k]:=t mod 10; t:=t div 10; until t=0; for j:=1 to k do if a[j]=0 then f:=1 else if i mod a[j]<>0 then f:=1; if f=0 then write(i,' '); end; readln; end.
Объяснение кода листинга программы
- Объявлены переменные:
t
,i
,n
типаlongint
;a
типаarray[1..10]of integer;
иk
,f
,j
типаinteger
. - Выводится сообщение
vvedite n
(введите n) и считывается значение переменнойn
. - Запускается цикл, который выполняет следующие действия:
- Устанавливается счётчик
k
равным 0. - Переменная
t
принимает значениеi
. - Переменная
f
устанавливается равной 0. - Цикл выполняется до тех пор, пока
t
не станет равным 0. - В каждой итерации цикла значение
t
делится на 10 и остаток от деления (модуль 10) записывается в соответствующий элемент массиваa
. - После цикла выполняется ещё один цикл, который проверяет каждый элемент массива
a
. Если элемент равен 0, то переменнойf
присваивается значение 1. Если остаток от деленияi
на элемент массива не равен 0, то переменнойf
также присваивается значение 1. - Если значение переменной
f
после второго цикла равно 0, то числоi
выводится на экран с помощью функцииwrite(i,' ')
.
- Устанавливается счётчик
- Программа ожидает ввода с клавиатуры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д