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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!