How to find N unique integers sum up to zero in C

2 Answers

0 votes
#include <stdio.h>
#include <stdlib.h>
 
int* unique_integers_sum_up_to_zero(int n) {
    int* arr = (int*)malloc(n * sizeof(int));
     
    if (arr == NULL) {
        return NULL;
    }
     
    for (int i = 0; i < n; i++) {
        arr[i] = 2 * i - n + 1;
    }
     
    return arr;
}
 
int main() {
    int n = 6;
     
    int* result = unique_integers_sum_up_to_zero(n);
     
    for (int i = 0; i < n; i++) {
        printf("%d ", result[i]);
    }
     
    free(result);
     
    return 0;
}
 
 
       
         
         
/*
run:
          
-5 -3 -1 1 3 5 
     
*/

 



answered Apr 16, 2024 by avibootz
edited Apr 16, 2024 by avibootz
0 votes
#include <stdio.h>
#include <stdlib.h>
 
int* unique_integers_sum_up_to_zero(int n) {
    int* arr = (int*)malloc(n * sizeof(int));
    int index = 0;
     
    if (arr == NULL) {
        return NULL;
    }
     
    for (int i = 1; i <= n / 2; i++) {
        arr[index++] = -i;
        arr[index++] = i;
    }
      
    if (n % 2 != 0) {
        arr[index++] = 0;
    }
      
    return arr;
}
 
int main() {
    int n = 6;
      
    int* result = unique_integers_sum_up_to_zero(n);
     
    for (int i = 0; i < n; i++) {
        printf("%d ", result[i]);
    }
     
    free(result);
     
    return 0;
}
 
 
 
         
/*
run:
          
-1 1 -2 2 -3 3 
     
*/

 



answered Apr 16, 2024 by avibootz
edited Apr 16, 2024 by avibootz

Related questions

2 answers 146 views
1 answer 106 views
1 answer 92 views
2 answers 118 views
2 answers 195 views
...