
Вопрос задан 18.04.2021 в 23:48.
Предмет Информатика.
Спрашивает Головащенко София.
Напишите программу, которая вводит натуральное число и находит все числа на отрезке [0, N], сумма
цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8 и 9 (например, число 9). Используйте функцию для вычисления суммы цифр числа. ПАСКАЛЬ СРОЧНО ПОМОГИТЕ

Ответы на вопрос

Отвечает Станиславович Кристина.
Var
n, i, aon_i, k: integer;
f: boolean;
function AmountOfNumbers(n: integer): integer;
var
s: integer;
begin
s := 0;
while n > 0 do
begin
s := s + n mod 10;
n := n div 10;
end;
AmountOfNumbers := s;
end;
begin
readln(n);
for i := 0 to n do
begin
f := true;
aon_i := AmountOfNumbers(i);
for k := 2 to 9 do
f := f and (aon_i = AmountOfNumbers(k * i));
if f then writeln(i);
end;
end.
n, i, aon_i, k: integer;
f: boolean;
function AmountOfNumbers(n: integer): integer;
var
s: integer;
begin
s := 0;
while n > 0 do
begin
s := s + n mod 10;
n := n div 10;
end;
AmountOfNumbers := s;
end;
begin
readln(n);
for i := 0 to n do
begin
f := true;
aon_i := AmountOfNumbers(i);
for k := 2 to 9 do
f := f and (aon_i = AmountOfNumbers(k * i));
if f then writeln(i);
end;
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот готовый код на Pascal:
scssprogram DigitSum;
function SumOfDigits(num: Integer): Integer;
var
digit, sum: Integer;
begin
sum := 0;
while num > 0 do
begin
digit := num mod 10;
sum := sum + digit;
num := num div 10;
end;
SumOfDigits := sum;
end;
var
N, i, digitSum, doubleSum, tripleSum, quadSum, quintSum, sextSum, septSum, octSum, nonSum: Integer;
begin
write('Введите число N: ');
readln(N);
for i := 0 to N do
begin
digitSum := SumOfDigits(i);
doubleSum := SumOfDigits(i * 2);
tripleSum := SumOfDigits(i * 3);
quadSum := SumOfDigits(i * 4);
quintSum := SumOfDigits(i * 5);
sextSum := SumOfDigits(i * 6);
septSum := SumOfDigits(i * 7);
octSum := SumOfDigits(i * 8);
nonSum := SumOfDigits(i * 9);
if (digitSum = doubleSum) and (digitSum = tripleSum) and (digitSum = quadSum) and (digitSum = quintSum) and (digitSum = sextSum) and (digitSum = septSum) and (digitSum = octSum) and (digitSum = nonSum) then
begin
writeln(i);
end;
end;
end.
Описание алгоритма:
Сначала мы определяем функцию
SumOfDigits
, которая получает целое число и возвращает сумму его цифр.Затем мы запрашиваем у пользователя число
N
, которое определяет, какие числа мы должны проверить.Мы проходим циклом от 0 до
N
и проверяем каждое число на отрезке, умножая его на 2,3,4,5,6,7,8 и 9 и сравнивая сумму его цифр с суммой цифр исходного числа.Если сумма цифр не меняется при умножении числа на 2,3,4,5,6,7,8 и 9, мы выводим это число на экран.
Надеюсь, это поможет!


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili