Разбор программы - C (СИ)
Формулировка задачи:
Всем привет друзья!
Помогите разобраться как работает программа (как генерируется ряд 0 5 55 500... и от куда появляется ответ)
#include <stdio.h> #include <locale.h> //Дана последовательность чисел, состоящих только из цифр 0 и 5, //в порядке возрастания: 0 5 50 55 500 505 5000 5005 5050 и так далее. //Найти k-ое по порядку в этой последовательности число. int main() { setlocale(LC_ALL, "Rus"); int k=0; int i = 1; int m; int n = 0; printf_s("Введите число k\nk="); scanf_s("%d",&k); while (i < k) { n = n + 5; m = n; while (m > 0) { if (m % 10 == 5 || m % 10 == 0) m /= 10; else break; } if (m == 0) i = i + 1; } printf_s("k-ое по порядку число = %d\n", n); system("PAUSE"); return 0;
Решение задачи: «Разбор программы»
textual
Листинг программы
while (i < k) { n = n + 5; // Перебираем все числа с шагом 5 m = n; while (m > 0) { if (m % 10 == 5 || m % 10 == 0) // если последняя цифра числа 0 или 5... m /= 10; // ... отбрасываем эту цифру else break; // иначе это число нам не подходит, выходим из цикла } if (m == 0) // если в результате все цифры отбросились,... i = i + 1; // ... то n - нужное нам число, увеличиваем счётчик }
Объяснение кода листинга программы
В данном коде решается задача поиска всех чисел, которые делятся на 5 или 10, в заданном диапазоне. Список действий следующий:
- Задаются начальные значения переменных:
- i — счётчик, который будет увеличиваться на 1 при каждом найденном числе;
- k — верхняя граница диапазона, в котором нужно искать числа;
- n — текущее проверяемое число;
- m — переменная, в которой будет храниться результат проверки последнего числа.
- Перебираются все числа в заданном диапазоне с шагом 5:
- n = n + 5;
- m = n;
- Для каждого числа (m) производится проверка на делимость на 5 или 10:
- если последняя цифра числа 0 или 5...
- m /= 10;
- ... отбрасываем эту цифру.
- Если последняя цифра числа не 0 и не 5, то число не подходит, выход из цикла.
- Если в результате проверки все цифры отбросились, то число (n) подходит, увеличиваем счётчик (i).
- После завершения цикла, счётчик (i) будет содержать количество найденных чисел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д