Informatică, întrebare adresată de kolm, 8 ani în urmă

Să se scrie un program C++ care citește un număr n și determină dacă numărul conţine trei cifre consecutive

Răspunsuri la întrebare

Răspuns de andrei750238
0

Răspuns:

int n,u,z,s;

cin >>n;

u = n%10;

n = n/10;

z = n%10;

n = n/10;

s= n%10;

If (z==s+1 && u=z+1) cout <<" da";

else cout << "nu";


Porecla0987: Mai gresit nu stiu daca-l puteai face
andrei750238: Ce e gresit la programul meu ? ( exceptand u==z+1 )

Deoarece nu se specifica regula sirului (consecutive pare, consecutive impare, consecutive divizibile cu 3 etc. )se considera consecutiv progresia aritmetica cu ratia 1.

Adica 123 - corect, 231 - incorect, 157 - incorect, 256- incorect, 765 - incorect

Input :
andrei750238: 123 - da
234 - da
456 - da
124 - nu
135 - nu
987 - nu
Porecla0987: Well, daca n > 1000 nu-si mai face treaba corect, in primul rand
Porecla0987: Apoi greseala cu +1 in loc de +2
Porecla0987: Si faptul ca cifrele consecutive nu-i neaparat sa fie crescatoare (pot fi si descrescatoare), dar asta nu-i chiar o greseala, e mai mult vina intrebarii
Porecla0987: Si cel mai important, eram convins ca ideea e sa verifici daca exista 3 cifre egale consecutiv, nu crescatoare consecutiv :))
Răspuns de Porecla0987
0

#include <iostream>

using namespace std;

bool has_three_consecutive_digits(int number)

{

if (number <= 110 && number >= -110)

 return false;

int digit = number % 10, count = 1;

number /= 10;

while (number)

{

 if (number % 10 != digit)

 {

  digit = number % 10;

  count = 1;

 }

 else

  ++count;

 if (count == 3)

  return true;

 number /= 10;

}

return false;

}

int main()

{

int n;

cin >> n;

cout << has_three_consecutive_digits(n);

}


andrei750238: Nu inteleg ce ai vrut sa faci, dar nu merge.

123 - 0
andrei750238: -123 -> 0
234 -> 0
987 -> 0

Pentru orice pare ca se afiseaza 0.

Plus de asta, problema e pentru clasa a 9-a din ce vad dificultatea. Site-ul asta e ca persoana sa inteleaga intr-un mod simplu, nu sa aiba tema rezolvata.

Din ce tin minte nu se fac functiile in clasa a 9-a. Si pun pariu ca persoana care a intrebat nu intelege care e faza cu count ( care explic eu aici pentru ea, contorizeaza de cate ori cifra "anterioara" se repeta. )
andrei750238: Am vazut ca programul face ceva pana la urma (te-am subestimat), verifica daca exista trei numere identice pe POZITII consecutive. Nu asta cere intrebarea si oricum te-ai complicat.
Porecla0987: :)) acum am realizat
Porecla0987: Yep, ai dreptate
Porecla0987: Daca vrea intr-un mod simplu, sa puna codul si sa intrebe cum functioneaza
Porecla0987: Oricum, daca nu intelege un cod de genul celui de mai sus (care e la mintea cocosului, s-o dam pe fata) m-as mira sa aiba un viitor stralucit in domeniu.
Alte întrebări interesante