PDA

View Full Version : [C] raddoppiamento ricorsivo?


white05
20-11-2007, 21:25
Function C per calcolare una somma di molti addendi mediante raddoppiamento ricorsivo nella versione iterativa usando un array in memoria...

ora mi chiedo..ma cosa è il raddoppiamento ricorsivo in versione iterativa?? :mbe: :mbe: :mbe: :mbe:
come fa una cosa ricorsiva ad essere iterativa?

spero che qualcuno possa chiarirmi le idee :doh:

:help: :help: :help:

cionci
20-11-2007, 21:45
Azzz...fai i complimenti a chi l'ha scritto :eek:
Sinceramente non ci ho capito niente :D

white05
20-11-2007, 23:27
meno male almeno il problema non è il mio....
è un esercizio che devo portare per fare un esame, l'ha scritto un prof!! :D
e bada bene che ho riportato la traccia esatta...
andiamo per gradi.. almeno hai idea di cosa sia il raddoppiamento ricorsivo???

cionci
21-11-2007, 01:55
Leggi qui...non mi sembrava un termine nuovo: http://www.hwupgrade.it/forum/showthread.php?t=1531710
Deve essere lo stesso prof.

white05
21-11-2007, 18:59
grazie mille.
Allora ho sciolto un pò di dubbi.
Il fatto di unire ricorsivo ed iterativo è stato un errore di stampa :mbe:
l'esercizio vuole la somma raddoppiata ricorsiva degli elementi di un array, dove per somma raddoppiata ricorsiva si intende questo
per esempio noi abbiamo questi elementi
0 2 6 3 4 2
la somma ovviamente è 17 e la si deve ottenere con una funzione che somma prima 0+2 poi 6+3 poi 4+2
poi somma i rispettivi risultati che sono 2 9 6 facendo 2+9 e quello che viene +6 cioè 11+6 = 17

qualche idea?:mbe:

AnonimoVeneziano
21-11-2007, 19:26
Dimmi se rispecchia il problema :


#include <stdio.h>
#include <stdlib.h>

int sumric(int[], int);

int main() {

int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

printf("%d\n", sumric(array, 11));

return 0;

}

int sumric(int array[], int length){
int newlen = length / 2;
int sum1 = 0;
int sum2 = 0;
if (length == 1)
return array[0];
sum1 = sumric(array, newlen);
sum2 = sumric(array+newlen, newlen);

if (length % 2 != 0)
return sum1+sum2+array[length-1];


return sum1+sum2;
}

white05
21-11-2007, 20:16
:) va benissimo grazie sei stato molto gentile

norbertom
22-11-2007, 00:58
sono pochi mesi che programmo ed queste ricorsive mi stanno togliendo veramente la pelle...

white05
22-11-2007, 14:33
a chi lo dici...non so perché ho sempre un pò di difficoltà ad avere l'intuizione base..spero sia solo un problema di allenamento :doh: