Răspuns :
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("smartphone1.in");
ofstream fout("smartphone1.out");
int n,x,y,ct=0,ok,dif;
fin>>n;
for(int i=1;i<=n;i++)
{
ok=1;
fin>>x;
while(x/10)
{
y=x%10;
x=x/10;
dif=y-x%10;
if(dif>4 || -dif>4 || dif==0)ok=0;
}
if(ok==1)ct++;
}
fout<<ct;
return 0;
}
Explicație:
Salut, in timp ce am citit numerele le-am descompus si am testat daca diferenta dintre 2 cifre consecutive este mai mare decat 4, in caz afirmativ inseamna ca nu se potriveste conditiei, fiindca se poate observa ca orice orice 2 cifre consecutive dintr-un numar de model de deblocare au valoarea absoluta a diferentei mai mica sau egala cu 4. Iar in cazul in care modulul (valoarea absolua) diferentei este mai mic sau egal cu 4 am contorizat numarul si la final am tiparit numarul de modele corecte in fisier.
1 2 3
4 5 6
7 8 9
1 este vecin cu 2, 4, 5
[1-2]=[2-1]=1
[1-4]=[4-1]=3
[1-5]=[5-1]=4
Principiul asta functioneaza la toate cifrele din modelul de deblocare.
Sper ca te-am ajutat, daca mai ai alte nelamuriri te rog scrie-mi.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.