Witam. Mam problem z zapisaniem funkcji w postaci rekurencyjnej
C[0]=0;S[0]=0;S[1]=r[1];
C[1]=S[1]+p[1];
C[2]=max(C[1],r[2])+p[2];
C[3]=max(C[2],r[3])+p[3];
C[4]=max(C[3],r[4])+p[4];
C[5]=max(C[4],r[5])+p[5];
C[6]=max(C[5],r[6])+p[6];
C[7]=max(C[6],r[7])+p[7];
C[8]=max(C[7],r[8])+p[8];
C[9]=max(C[8],r[9])+p[9];
C[10]=max(C[9],r[10])+p[10];
C[11]=max(C[10],r[11])+p[11];
O to moja próba
int licz_wynik(int C[], int p[], int r[],int rozmiar)
{
if (rozmiar==0)
return 0;
if (rozmiar==1)
{
C[rozmiar]=r[1]+p[1];
return C[rozmiar];
}
return C[rozmiar]=max(licz_wynik(C[rozmiar-1],r[rozmiar]))+p[rozmiar];
}
Zwracany błąd:
C:\Users\Janusz\Desktop\alg_jacksona\main.cpp||In function 'int licz_wynik(int*, int*, int*, int)':|
C:\Users\Janusz\Desktop\alg_jacksona\main.cpp|27|error: invalid conversion from 'int' to 'int*' [-fpermissive]|
C:\Users\Janusz\Desktop\alg_jacksona\main.cpp|27|error: invalid conversion from 'int' to 'int*' [-fpermissive]|
C:\Users\Janusz\Desktop\alg_jacksona\main.cpp|27|error: too few arguments to function 'int licz_wynik(int*, int*, int*, int)'|
C:\Users\Janusz\Desktop\alg_jacksona\main.cpp|17|note: declared here|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Domyślam się, że problem ma związek ze wskaźnikami. Ale nie wiem jak go rozwiązać. Dodatkowo nie jestem pewien czy w ogóle moja próba przekształcenia jest poprawna. Chciałbym aby algorytm zwracał mi wartość z C[rozmiar]. Z góry dziękuję za pomoc.