Найти количество таких чисел из диапазона от 1 до N, что их сумма цифр делится на K - C (СИ)

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

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

Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N таких, что их сумма цифр делится на K. мой код зацикливается, не могунайти ошибку.
Листинг программы
  1. #include <stdio.h>
  2. int main()
  3. {int sum = 0, n, k, i, ost, s = 0;
  4. scanf("%d%d", &n, &k);
  5. for (i = 1; i <= n; i++) {
  6. sum = 0;
  7. while (i != 0) {
  8. ost = i % 10;
  9. i = i / 10;
  10. sum = sum + ost;
  11. }
  12. printf("%d ", sum);
  13. if ((sum % k) == 0) s = s+1;
  14. }
  15. printf("%d", s);
  16. }

Решение задачи: «Найти количество таких чисел из диапазона от 1 до N, что их сумма цифр делится на K»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {int sum = 0, n, k, i, ost, s = 0, r;
  5. scanf("%d %d", &n, &k);
  6. for (i = 1; i <= n; i++) {
  7.     sum = 0;
  8.     r=i;
  9.     while (r != 0) {
  10.         ost = r % 10;
  11.         r = r / 10;
  12.         sum = sum + ost;
  13.     }
  14.     printf("%d ", sum);
  15.     if ((sum % k) == 0) s = s+1;
  16. }
  17. printf("%d", s);
  18. }

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

В этом коде осуществляется подсчет количества чисел из заданного диапазона (от 1 до N), сумма цифр которых делится на K.

  1. В первой строке подключается стандартная библиотека для работы с консолью.
  2. В функции main() определены следующие переменные:
    • sum - переменная для хранения суммы цифр числа;
    • n - переменная для хранения верхнего предела чисел из диапазона;
    • k - переменная для хранения делителя суммы цифр чисел;
    • i - переменная-счетчик чисел из диапазона;
    • ost - переменная для хранения остатка от деления числа на 10;
    • s - переменная для хранения количества чисел, удовлетворяющих условию;
    • r - переменная для хранения числа, сумма цифр которого проверяется.
  3. С помощью функции scanf() вводятся значения переменных n и k.
  4. В цикле for перебираются числа от 1 до n.
  5. Для каждого числа внутри цикла выполняются следующие действия:
    • Переменная sum инициализируется нулем. Переменная r получает значение текущего числа.
    • В цикле while число r уменьшается на единицу до тех пор, пока оно не станет равным нулю.
    • Остаток от деления r на 10 (цифра числа) сохраняется в переменной ost и обновляется значение r.
    • К переменной sum прибавляется значение ost.
    • После окончания цикла while выводится значение переменной sum (пробел после числа).
    • Если сумма цифр числа делится на k без остатка (остаток от деления равен нулю), то к переменной s прибавляется единица.
  6. После окончания цикла for выводится значение переменной s.

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


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

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

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы