Вопрос задан 18.04.2021 в 23:48. Предмет Информатика. Спрашивает Головащенко София.

Напишите программу, которая вводит натуральное число и находит все числа на отрезке [0, N], сумма

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Станиславович Кристина.
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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот готовый код на Pascal:

scss
program 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.

Описание алгоритма:

  1. Сначала мы определяем функцию SumOfDigits, которая получает целое число и возвращает сумму его цифр.

  2. Затем мы запрашиваем у пользователя число N, которое определяет, какие числа мы должны проверить.

  3. Мы проходим циклом от 0 до N и проверяем каждое число на отрезке, умножая его на 2,3,4,5,6,7,8 и 9 и сравнивая сумму его цифр с суммой цифр исходного числа.

  4. Если сумма цифр не меняется при умножении числа на 2,3,4,5,6,7,8 и 9, мы выводим это число на экран.

Надеюсь, это поможет!

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос