Răspuns :
Program in pseudocod:
vezi poza
\\(*numar) sunt comentarii, nu trebuie sa fie incluse in program
Program
#include <iostream>
using namespace std;
int x, a[100], i, s, y, k;
int main ()
{
while (cin >> x && x != 0) { //(*1)
i++;
a[i] = x; //(*2)
}
for (k = 3; k <= i; k++) { //(*3)
y = a[k-2]; //(*4)
s = 0; //(*5)
while (y > 0) {
s = s + y%10; //(*6)
y = y/10;
}
if (a[k-1] == a[k-2]/s && a[k] == a[k-2]%s) cout << "(" << a[k-2] << ", " << a[k-1] << ", " << a[k] << "); "; //(*7)
}
return 0;
}
Comentarii:
(*1) se citesc numerele cat timp exista si sunt diferite de 0
(*2) se pastreaza numerele citite intr-un vector, iar in final i ne va da si numarul de numere din vector
(*3) incepe algoritmul propriu-zis; parcurgem elementele din a de la pozitia 3 la pozitia k; in aceasta etapa se verifica daca tripletul a[k-2], a[k-1] si a[k] respecta cerinta
(*4) i se atribuie variabilei y valoarea lui a[k-2]; va fi nevoie sa modificam valoarea numarului ca sa-i aflam suma cifrelor si nu vrem sa-i pierdem valoarea lui a[k-2], asa ca ne folosim de variabila y pentru asta
(*5) se initializeaza suma cifrelor cu 0
(*6) se calculeaza suma cifrelor lui y in s, y%10 fiind ultima cifra a lui y
(*7) daca succesorul lui a[k-2], adica a[k-1]=a[k-2]/s=catul la impartirea lui a[k-2] la s si succesorul lui a[k-1], adica a[k]=a[k-2]%s=restul la impartirea lui a[k-2] la s, se afiseaza tripletul a[k-2], a[k-1], a[k].
EXEMPLE
se citeste sirul: 15 3 3 67 5 3 67 5 2 137 12 5 0 67 5 2
se afiseaza: (67, 5, 2); (137, 12, 5);
se citeste sirul: 15 0 3 3 67 5 3 67 5 2 137 12 5 67 5 2
se afiseaza: (nimic)
se citeste sirul: 205 29 2 7 0
se afiseaza: (205, 29, 2); (29, 2, 7);

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că ați găsit conținutul oferit util și inspirațional. Dacă aveți întrebări suplimentare sau doriți asistență, vă încurajăm să ne contactați. Ne-ar face plăcere să reveniți și nu uitați să ne adăugați în lista dumneavoastră de favorite!