Your question mixes up a bunch of different, vague requirements and generic terms; but this might help you.
Firstly you ask for "... void function ...". A void function doesn't have a return value, so you're making life difficult by specifying that. Not only do you need to find an alternative way to obtain the final result, it is in the very nature of "recursion" that each level of recursion needs access to the intermediate results from the deeper levels.
You want to "calculate math formula", but do not specify what formula?
You say you want to use "function recursion", but only a subset of formulae lend themselves to recursive solutions.
So, let's start by picking an example formula: factorial. factorial( n ) =: n* n-1 * n-2 * n-3...
This can be computed in C without recursion or void return as:
Code:
int factorialIterative( int n ) {
int answer = n;
while( n > 1 ) {
n -= 1;
answer *= n;
}
return answer;
}
Using recursion and non-void function:
Code:
int factorialRecursive( int n ) {
if( n == 1 ) return 1;
return n * factorialRecusive( n-1 );
}
(That's pretty much the standard form for recursion in C.)
If you really insist on making life difficult by using a void function, then you need to have a way to return the computed result to the caller. One way to to that is to pass a pointer to a variable in the calling code that the function can store the result to.
Code:
void factorialRecursiveVoid( int *answer, int n ) {
if( n == 1 ) return;
*answer *= n--;
return;
}
But that is dangerous as it requires the caller to ensure that the variable answer is initialised to (exactly) 1, before calling the function, and there is no reasonable solution to avoiding that statutory requirement of the caller; nor any reasonable mechanism by which the recursive function could verify it.
@Buk, it's nice that you want to be helpful but seems like maybe you need to reread the rules yourself. As @anorlunda CLEARLY pointed out, we don't give help until the OP has made an attempt (and shown it here).