👤

Se consideră algoritmul de mai jos, reprezentat în pseudocod.

citeşte n
(număr natural nenul)
k ← 1
m ← 1
┌cât timp n>9 execută
│┌dacă n%10=[n/10]%10 atunci
││ k ← k+1
││┌dacă k>m atunci
│││ m ← k
││└■
││altfel
││ k ← 1
│└■
│ n ← [n/10]
└■
scrie m
S-a notat cu a%b restul împărţirii numărului natural a la numărul natural nenul b şi cu [c] partea întreagă a numărului real c.

Scrieţi numărul de valori din intervalul [10000,99999] care să înceapă cu cifra 1, care pot fi citite pentru variabila n, astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afişeze valoarea 4.




Răspuns :

k si m pornesk din start cu valoarea 1, ca m sa creasca tr sa fie adevarata conditia k>m, adica sa creasca si k, dar observam k creste daca ultimele doua cifre a numarului sunt egale,  

dacă n%10=[n/10]%10 atunci


    k ← k+1

apoi n se modifica n < - [n/10] , se arunca ultima cifra si iar avem necesitate pt a creste k si m ca ultimele cifre sa fie egale. Deci concluzia:

numerele cautate incep cu 1 si urmeaza patru cifre egale, adica ele sunt 10000, 11111, 12222, 13333, 14444, 15555, 16666, 17777, 18888, 19999.

---- Iata si codul care adevereste cele scrise mai sus ------

Deci avem 10 numere

#include <iostream>

using namespace std;

int main()

{

  int n, c, r, m=1, k=1;

  cin >> n;

  while (n>9)

  {

      if (n%10==(n/10)%10)

      {

          ++k;

          if (k>m)

             m=k;

      }

      else k=1;

     n=n/10;

  }

  cout << m;

}


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 suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!


En Studentsy: Alte intrebari