Для натуральных чисел, не превосходящих заданного 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; }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные: k, i, j, sum (k — число, не превосходящее заданное значение; i — номер текущего числа; j — текущая десятичная цифра числа; sum — сумма цифр числа).
- С помощью функции scanf() с клавиатуры считывается значение переменной k.
- Происходит проверка: если k меньше или равно нулю, выводится сообщение об ошибке и программа завершается.
- С помощью цикла for с переменной i от 1 до k происходит перебор чисел не больше k.
- Внутри цикла переменная j устанавливается равной i, а переменная sum сбрасывается в ноль.
- С помощью цикла while с переменной j происходит перебор всех десятичных цифр текущего числа (пока число не станет равно нулю).
- Внутри цикла значение переменной sum увеличивается на значение текущей цифры (полученное с помощью операции % — остаток от деления).
- Затем переменная j делится на 10 (чтобы перейти к следующей цифре).
- Проверяется, делится ли сумма цифр на 9 (если да, то выводится текущее число).
- В конце программы возвращается ноль, чтобы программа завершилась корректно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д