Как я могу создать conastant параметр в функции C++?
Я пытаюсь переписать алгоритм Python на C++, и он работает неправильно.
Я думаю, что проблема в том, что я не могу правильно переписать функцию в C++. Как записать константу в функцию (в Python это параметр "start") или ошибку в другую функцию?
На Python 3:
алгоритм def(n, start = 2)
В данном случае "старт" - константа.
Я не знаю, как я могу написать это на C++
Что я уже пробовал:
Вот мой код на C++ :
#include <iostream> using namespace std; int Algorithm(int, const int); int main() { const int start = 2; int num, ans; cin >> num; ans = Algorithm(num, start); cout << ans; return 0; } int Algorithm(int n, const int start = 2) { if (n == 1) { return 1; } else { int ans = 0; int i; for (i = start; i <= n; i++) { if (n % 1 == 0) { ans += Algorithm(n / i, i + 1); } } return ans; } }А вот и мой код на Python:
def algorithm(n, start=2): if n == 1: return 1 else: ans = 0 for i in range(start, n+1): if n % i == 0: ans += algorithm(n // i, i + 1) return ans n = int(input()) ans = algorithm(n) print(ans)
Richard MacCutchan
Как я уже предположил, ваше начальное значение должно быть числом, деленным на 2. Так что вам не нужна константа.