# PBinfo #2712 – Semne – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Fie un număr n natural nenul, determinați un număr k și o combinație de semne + sau -(mai exact o succesiune \( x_1, x_2, …, x_k  \) unde \( x_i \in \left\{ -1 , 1 \right\} \), astfel încat să aibă loc relația: \( n =  {x}_{1} \cdot {1}^{2}+{x}_{2}\cdot{2}^{2}+…+{x}_{k}\cdot{k}^{2} \). Să se afișeze o succesiune de k semne + sau - care să îndeplinească relația de mai sus.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieșire
Programul va afișa pe ecran o succesiune de k semne + sau - care să îndeplinească relația.

Restricții și precizări

1 ≤ n ≤ 100

Exemplu 1:
Intrare

3
Ieșire

-+--+
Exemplu 2:
Intrare

2
Ieșire

---+

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    switch (n % 4) {
        case 1:
            cout << '+';
            break;
        case 2:
        	cout << "---+"; 
        	break;
        case 3:
        	cout << "-+";   
        	break;
    } for (int i = n / 4 - 1; i >= 0; --i)
        cout << "+--+";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2712)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2712/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2712/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
