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

Se generează un şir de cifre ai cărui primi termeni sunt, în această ordine: 1, 1, 2, 4, 7, 3, 4, 4, 1, 9, 4, 4, 7, 5, 6, 8,... Deduceţi regula după care sunt generaţi termenii şirului şi scrieţi un program care să citească numerele naturale n, k şi p şi care să determine: a) numărul de apariţii ale cifrei k printre primii n termeni ai şirului din enunţ; b) cel de-al p-lea termen al şirului din enunţ.


Xdarkness: acum 9 ore?
Xdarkness: nu
boiustef: lăsăm pe mâine.. decă se acceptă

Răspunsuri la întrebare

Răspuns de boiustef
0

#include <iostream>

using namespace std;

int n, k, p, tip, i, gasit1, gasit2, ap, t1=1, t2=1, t3=2, urm;

int main()

{

   cout << "n= "; cin >> n;

   cout << "k= "; cin >> k;

   cout << "p= "; cin >> p;

   if (n==1 && k==t1) { ap=1; gasit1=1; }

   if (p==1) { tip=t1; gasit2=1; }

   if (n==2 && k==t2) { ap=2; gasit1=1; }

   if (p==2) { tip=t2; gasit2=1; }

   if (n==3 && k==t3) { ap=1; gasit1=1; }

   if (p==3) { tip=t3; gasit2=1; }

   i=3;

   while (gasit1==0 || gasit2==0)

   {

      ++i;

      urm=(t1+t2+t3)%10;

      if (gasit1==0)

      {

           if (urm==k) ++ap;

           if (i==n) gasit1=1;

      }

      if (gasit2==0)

      {

            if (i==p) { tip=urm; gasit2=1; }

      }

      t1=t2; t2=t3; t3=urm;

   }

   cout << "a) aparitii= " << ap << endl;

   cout << "b) t" << p << "= " << tip << endl;

}

Alte întrebări interesante