Сколько существует программ, которые число a преобразуют в число b,а затем это число преобразуют в число c - C (СИ)
Формулировка задачи:
Решение задачи: «Сколько существует программ, которые число a преобразуют в число b,а затем это число преобразуют в число c»
#include <stdio.h> #include <stdlib.h> int count; void Next(int n, int c) { if (n > c) return; if (n==c) {count++; return;} Next(n+2,c); Next(n*n*n,c); } int main(int argc, char *argv[]) { count=0; Next(2,28); printf("%d\n",count); system("PAUSE"); return 0; }
Объяснение кода листинга программы
В этом коде используется рекурсивная функция Next, которая принимает два аргумента: n и c. Если n больше c, функция прекращает свою работу. Если n равно c, то функция увеличивает счетчик count на единицу и продолжает работу. Если n меньше c, функция вызывает саму себя, но уже с аргументами n+2 и c, а также nnn и c. В функции main счетчик count инициализируется нулем. Затем вызывается функция Next с аргументами 2 и 28. 28 - это максимальное значение, которое может быть получено из 2 путем возведения в куб (222=8), затем в четвертой степени (8888=2097152), затем в шестой степени (209715220971522097152209715220971522097152=576460448) и так далее. После того, как все значения от 2 до 28 были обработаны, функция main выводит значение count, которое равно количеству программ, которые число a преобразуют в число b, а затем это число преобразуют в число c. Затем программа ожидает нажатия клавиши, чтобы пользователь мог увидеть результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д