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

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

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

Помогите пожалуйста: Число делится на 11, если разность между суммой цифр, стоящих на нечётных местах, и суммой цифр, стоящих на чётных местах, кратна 11. Проверить этот признак для всех натуральных чисел, не превосходящих заданного m, и вывести числа, кратные 11.

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 ) {
        char buf[16];
        int i, diff, cnt[2] = { 0 };
        
        sprintf(buf, "%u", n);
        for ( i = 0; buf[i]; ++i )
            cnt[i & 1] += buf[i] - '0';
        
        diff = abs(cnt[0] - cnt[1]); 
        
        printf("It is %sa multiple of 11\n", ( diff / 11 * 11 == diff ) ? "" : "not ");
    }
    
    return 0;
}

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

Выводимый на экран список чисел, кратных 11, не превосходящих заданного m, формируется следующим образом:

  1. Вводится число (Number).
  2. Число преобразуется в строку (buf).
  3. Для каждой цифры числа (buf) выполняется следующее:
    • цифра вычитается из '0' (получается числовое значение цифры от 0 до 9),
    • полученное числовое значение добавляется в соответствующий массив (cnt) с учётом чётности цифры (i & 1).
  4. Вычисляется разность (diff) между суммами цифр четных и нечётных позиций массива (cnt).
  5. Проверяется условие: если разность (diff) делится на 11 без остатка, то число (n) кратно 11.
  6. На экран выводится сообщение о том, является ли число (n) кратным 11.
  7. После нажатия клавиши Enter программа переходит к следующей итерации цикла. В случае, если число (n) не кратно 11, на экран выводится сообщение It is not a multiple of 11.

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


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

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

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