solving problems recursively in C
Posted
by Harry86
on Stack Overflow
See other posts from Stack Overflow
or by Harry86
Published on 2010-05-14T13:00:00Z
Indexed on
2010/05/14
13:04 UTC
Read the original article
Hit count: 195
Our professor gave us the following assignment:
A "correct" series is one inwhich the sum of its members equals to the index of its first member.
The program is supposed to find the length of the LONGEST "correct" series within a series of n numbers.
for example: if the input series would be arr[4]={1, 1, 0, 0} the output (longest "correct" series) would be 3.
arr[0]=1. 0!=1 therefore the longest series here is 0. arr[1]=1,and 1=1. but the follwing members also sum up to 1 as shown below:
1=arr[1]+arr[2]+arr[3] = 1+ 0 + 0, therefore the longest series here is 3.
the output in this example is 3.
That's what I got so far:
int solve(int arr[], int index, int length,int sum_so_far)
{
int maxwith,maxwithout;
if(index==length)
return 0;
maxwith = 1+ solve(arr,index+1,length,sum_so_far+arr[index]);
maxwithout = solve(arr,index+1,length,arr[index+1]);
if(sum_so_far+arr[index]==index)
if(maxwith>maxwithout) return maxwith;
return maxwithout;
return 0;
}
int longestIndex(int arr[], int index,int length)
{
return solve(arr,0,length,0);
}
What am I doing wrong here? Thanks a lot for your time...
Harry
© Stack Overflow or respective owner