Zadanie 3 ze zbioru maturalnego – obliczanie ilości mnożeń
Zmienna mn liczy mnożenia (przed return) – uwaga, k*k*k to dwa mnożenia!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> //Autor: Eryk Kucharski using namespace std; int mn = 0; //liczba mnozen - gwiazdki int F(int x, int n) { if (n == 1) return x; if (n % 3 == 0) { int k = F(x, n / 3); //rekurencja (1) mn += 2; //dwa mnożenia poniżej return k * k * k; } mn++; //jedno mnożenie poniżej return x * F(x, n - 1); //rekurencja (2) } int main() { cout << F(3,4); cout << " mnozen: " << mn; } |