Informatică, întrebare adresată de lorenadan28, 9 ani în urmă

Buna!Trebuie sa fac acest algoritm si nu imi dau seama cum ,va rog mult de tot sa ma ajutati: Alcatuiti un algoritm in C++ in care se citeste un numar natural n. Sa se afiseze toate modalitatile de a-l descompune ca suma de numere naturale consecutive. Daca acest lucru nu este posibil, se va afisa mesajul „Imposibil”.
Exemplu: Numarul 15 se poate scrie ca urmatoarele sume: 1+2+3+4+5 , 4+5+6 sau 7+8. Numarul 8 nu poate fi scris ca suma de numere consecutive.

Răspunsuri la întrebare

Răspuns de petrutzmy99
2
#include <iostream>


using namespace std;

int main()
{
    int n, i, j, s = 0, k, p=0;
    cin >> n;
    for (i = 1; i <= n-1; i++)
    {
       
        for (j = i; j <= n-1 && s!=n; j++)
        {
            s = s + j;
            if (s == n)
            {
                p = 1;
                for (k = i; k <= j; k++)
                    cout << k << " ";
            }
        }
        if (p == 1) cout << endl;
        s = 0;
    }
    if (p!=1)
        cout << "Imposibil";
   
    return 0;
}


petrutzmy99: Probabil ca exista si o metoda mai eficienta dar merge si asta :)
lorenadan28: Iti multumesc foarte mult!
lorenadan28: Iti multumesc din inima!Te-as ruga daca vrei sa te uiti si pe celelalte 3 ultime intrebari de pe profilul meu caci sunt cam la fel cu acesta.Este doar o cerinta dar le-am pus de mai multe ori ca nimeni nu imi raspundea.TE ROG MULT!
Alte întrebări interesante