print 1 to n print n to 1 print 1 to n without using i+1 print n to 1 without using i-1 sum of first n numbers

```sumN(int i, int n){
	if(i==n)
		return i;
	else{
		return i + sumN(i+1, n);
	}
}
 
Top down, i=N, sum=0
 
sumN(int i, int sum){
	if(i<1){
			print(sum);
			return;
	}
	sumN(i-1, sum+i);
 
}
 

Reverse an array |1|2|3|4|5|6|7|8|9

start=0, end=n-1
reverse( int start, int end , arr){
	if( start >= end)
		return;
	reverse( start+1, end-1 , arr);
		int temp = arr[start];
		arr[start] = arr[end];
		arr[end]=temp;	
}

Using only extra single variables

start=0
reverse( int start, arr){
	if( start >= arr.size()/2)
		return;
	reverse( start+1 , arr);
		int temp = arr[start];
		arr[start] = arr[arr.size-start-1];
		arr[arr.size-start-1]=temp;	
}