Найти количество таких чисел из диапазона от 1 до N, что их сумма цифр делится на K - C (СИ)
Формулировка задачи:
Вводятся два числа N и K. Выведите количество чисел из диапазона от 1 до N таких, что их сумма цифр делится на K.
мой код зацикливается, не могунайти ошибку.
#include <stdio.h> int main() {int sum = 0, n, k, i, ost, s = 0; scanf("%d%d", &n, &k); for (i = 1; i <= n; i++) { sum = 0; while (i != 0) { ost = i % 10; i = i / 10; sum = sum + ost; } printf("%d ", sum); if ((sum % k) == 0) s = s+1; } printf("%d", s); }
Решение задачи: «Найти количество таких чисел из диапазона от 1 до N, что их сумма цифр делится на K»
textual
Листинг программы
#include <stdio.h> int main() {int sum = 0, n, k, i, ost, s = 0, r; scanf("%d %d", &n, &k); for (i = 1; i <= n; i++) { sum = 0; r=i; while (r != 0) { ost = r % 10; r = r / 10; sum = sum + ost; } printf("%d ", sum); if ((sum % k) == 0) s = s+1; } printf("%d", s); }
Объяснение кода листинга программы
В этом коде осуществляется подсчет количества чисел из заданного диапазона (от 1 до N), сумма цифр которых делится на K.
- В первой строке подключается стандартная библиотека для работы с консолью.
- В функции main() определены следующие переменные:
- sum - переменная для хранения суммы цифр числа;
- n - переменная для хранения верхнего предела чисел из диапазона;
- k - переменная для хранения делителя суммы цифр чисел;
- i - переменная-счетчик чисел из диапазона;
- ost - переменная для хранения остатка от деления числа на 10;
- s - переменная для хранения количества чисел, удовлетворяющих условию;
- r - переменная для хранения числа, сумма цифр которого проверяется.
- С помощью функции scanf() вводятся значения переменных n и k.
- В цикле for перебираются числа от 1 до n.
- Для каждого числа внутри цикла выполняются следующие действия:
- Переменная sum инициализируется нулем. Переменная r получает значение текущего числа.
- В цикле while число r уменьшается на единицу до тех пор, пока оно не станет равным нулю.
- Остаток от деления r на 10 (цифра числа) сохраняется в переменной ost и обновляется значение r.
- К переменной sum прибавляется значение ost.
- После окончания цикла while выводится значение переменной sum (пробел после числа).
- Если сумма цифр числа делится на k без остатка (остаток от деления равен нулю), то к переменной s прибавляется единица.
- После окончания цикла for выводится значение переменной s.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д