Для натуральных чисел, не превосходящих заданного k, проверить признак делимости на 9 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите с решением задачки на C, никак не могу понять, заранее благодарю. Буду благодарен даже наводке на то как это решить
Для натуральных чисел, не превосходящих заданного k, проверить признак делимости на 9 (сумма цифр числа, делящегося на 9, также делится на 9). Распечатать m последних таких чисел (m<<k)

Решение задачи: «Для натуральных чисел, не превосходящих заданного k, проверить признак делимости на 9»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
    unsigned int k = 0, i = 0, j = 0, sum = 0;
    
    printf("k = ");
    scanf("%u", &k);
    
    if(k <= 0)
    {
        printf("k <= 0");
        return 1;
    }
    
    for(i = 1; i <= k; i++)
    {
        j = i;
        sum = 0;
        while(j)
        {
            sum = sum + (j % 10);
            j = j/10;
        }
        //printf("i = %u, sum = %u\n", i , sum);
        if(sum%9 == 0)
            printf("%u\n", i);          
    }
    
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявляются переменные: k, i, j, sum (k — число, не превосходящее заданное значение; i — номер текущего числа; j — текущая десятичная цифра числа; sum — сумма цифр числа).
  2. С помощью функции scanf() с клавиатуры считывается значение переменной k.
  3. Происходит проверка: если k меньше или равно нулю, выводится сообщение об ошибке и программа завершается.
  4. С помощью цикла for с переменной i от 1 до k происходит перебор чисел не больше k.
  5. Внутри цикла переменная j устанавливается равной i, а переменная sum сбрасывается в ноль.
  6. С помощью цикла while с переменной j происходит перебор всех десятичных цифр текущего числа (пока число не станет равно нулю).
  7. Внутри цикла значение переменной sum увеличивается на значение текущей цифры (полученное с помощью операции % — остаток от деления).
  8. Затем переменная j делится на 10 (чтобы перейти к следующей цифре).
  9. Проверяется, делится ли сумма цифр на 9 (если да, то выводится текущее число).
  10. В конце программы возвращается ноль, чтобы программа завершилась корректно.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы