#include<stdio.h>
void f1(int n, int arr[], int k){
if(n==0){
int sum = 0 ;
for(int i=0; i<k; i++){
sum += arr[i] ;
}
printf("%d = ",sum) ;
for(int i=0; i<k-1; i++){
printf("%d + ",arr[i]) ;
}
printf("%d\n",arr[k-1]) ;
}
for(int i=1; i<=n; i++){
arr[k] = i;
f1(n-i, arr, k+1);
}
}
void f2(int n, int arr[], int k){
if(n == 0){
int sum = arr[0] ;
for(int i=1; i<k; i++){
if(arr[i] < arr[i-1]){
return ;
}else{
sum += arr[i] ;
}
}
printf("%d = ",sum);
for(int i=0; i<k-1; i++){
printf("%d + ",arr[i]);
}
printf("%d\n",arr[k-1]);
}
for(int i=1; i<=n; i++){
arr[k] = i ;
f2(n-i, arr, k+1);
}
}
int main(){
int n = 5;
int array[n];
f1(n, array, 0);
printf("---------------------------------\n");
f2(n, array, 0) ;
}