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 vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!