Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm N số nguyên duy nhất Tổng lên đến 0 trong C ++

Giả sử chúng ta có một số nguyên n. Chúng ta phải trả về bất kỳ mảng nào chứa n số nguyên duy nhất, sao cho chúng cộng lại bằng 0. Vì vậy, nếu đầu vào là n =5, thì một đầu ra có thể sẽ là [-7, -1, 1, 3, 4]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • lấy mảng A làm câu trả lời cuối cùng và lấy x:=0
  • cho tôi trong phạm vi từ 0 đến n - 2
    • A [i] =(i + 1)
    • x:=x + i + 1
  • A [n - 1] =x
  • trả về A

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<int> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
      vector<int> sumZero(int n) {
         vector <int> ans(n);
         int x = 0;
         for(int i = 0; i < n - 1; i++){
            ans[i] = (i + 1);
            x += (i + 1);
         }
         ans[n - 1] = -x;
         return ans;
      }
};
main(){
   Solution ob;
   print_vector(ob.sumZero(10)) ;
}

Đầu vào

10

Đầu ra

[1, 2, 3, 4, 5, 6, 7, 8, 9, -45, ]