[C] funzione
Ciao a tutti. Vorrei proprio sapere come si risolve questo esercizio SENZA utilizzare la funzione pow
Scrivere una funzione che acquisisca 3 numeri interi, che sommi i primi due e li elevi al valore del terzo intero
Risposte
bè... potresti fare un ciclo di moltiplicazioni
tipo a= somma dei primi due numeri
b= terzo valore
c= risultato di $ a^b $
allora potresti fare un ciclo in maniera ricorsiva cioè assegni il valore a alla variabile c, poi fai un ciclo for che parte da 1 e arriva fino a b ed in ogni ciclo fai c=c*a
tipo a= somma dei primi due numeri
b= terzo valore
c= risultato di $ a^b $
allora potresti fare un ciclo in maniera ricorsiva cioè assegni il valore a alla variabile c, poi fai un ciclo for che parte da 1 e arriva fino a b ed in ogni ciclo fai c=c*a
Non c'è alcun bisogno di ricorrere alle funzioni ricorsive in questo caso, un semplice ciclo for è più che sufficiente e utilizza meno memoria.
Siano A, B, C i 3 numeri.
Per prima cosa ti costruisci la somma S = A + B
Inizializzi il risultato R a 1
Fai un ciclo in cui moltiplichi R *= S C volte
Restituisci R
Dopo che sei riuscita a fare questo prova a ridurre il numero di prodotti necessario. Per esempio $2^8$ lo potresti calcolare prima calcolandoti $2^2 = 2*2$, poi $2^4 = 2^2 * 2^2$ e infine $2^8 = 2^4 * 2^4$, facendo quindi in tutto solo $3$ moltiplicazioni invece che $8$. Riesci a trovare un algoritmo più efficiente di quello lineare (anche se non necessariamente ottimale)?
Siano A, B, C i 3 numeri.
Per prima cosa ti costruisci la somma S = A + B
Inizializzi il risultato R a 1
Fai un ciclo in cui moltiplichi R *= S C volte
Restituisci R
Dopo che sei riuscita a fare questo prova a ridurre il numero di prodotti necessario. Per esempio $2^8$ lo potresti calcolare prima calcolandoti $2^2 = 2*2$, poi $2^4 = 2^2 * 2^2$ e infine $2^8 = 2^4 * 2^4$, facendo quindi in tutto solo $3$ moltiplicazioni invece che $8$. Riesci a trovare un algoritmo più efficiente di quello lineare (anche se non necessariamente ottimale)?