Va rog frumos !!
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,...
Cerința
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ţ.
Date de intrare
Programul citește de la tastatură numerele n k p.
Date de ieșire
Programul va afișa pe ecran două numere naturale:
primul număr va reprezenta numărul de apariţii ale cifrei k printre primii n termeni ai şirului din enunţ;
al doilea număr va reprezenta cel de-al p-lea termen al şirului din enunţ.
Restricții și precizări
Numerele n k p sunt naturale
17 ≤ n ≤100; 0 ≤ k ≤ 9; 1≤ p ≤ 2000000000
Pentru rezolvarea corectă a cerinţei a) se acordă 30% din punctaj iar pentru cerinţa b) 70% din punctaj.
Răspunsuri la întrebare
Răspuns de
8
#include <iostream>
using namespace std;
int main()
{
int p , a , b , c , d , n , i , k , nr = 0 , y;
cin >> n >> k >> p;
a = 1; b = 1; c = 2;
y = p % 124;
if(a == k)
nr ++;
if(b == k)
nr ++;
if(c == k)
nr ++;
for(i = 4 ; i <= n ; i ++)
{
d = (a + b + c) % 10;
a = b; b = c; c = d;
if(d == k)
nr ++;
}
a = 1; b = 1; c = 2;
if(y == 1)
d = a;
else
if(y == 2)
d = b;
else
if(y == 3)
d = c;
else
{
if(y == 0)
y = 124;
for(i = 4 ; i <= y ; i++)
{
d = (a + b + c) % 10;
a = b; b = c; c = d;
}
}
cout << nr << endl << d <<endl;
return 0;
}
picamadalin:
merci
Alte întrebări interesante
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă
Ed. muzicală,
9 ani în urmă
Istorie,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă