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

Salut.
Codul meu pentru problema 1464 de pe pbinfo imi da 60 puncte(limita de timp depasita)
Ceva idei pt 100 puncte?
cerinta:

Scrieți un algoritm care determină, pornind de la cifra P, cel de-al K-lea termen al sirului S.

Exemplu:
9 10
139
(Șirul generat este 9 19 39 49 69 79 99 109 129 139 159. Al 10-lea termen este 139)

cod:

#include

using namespace std;

int c(int n, int p)
{
int c=1, s=0;
s=n;
p--;
while(p!=0)
{
s=c*10+s;
c++;
if(c==3)
c=1;
p--;
}
return s;
}

int main()
{
int n, p;
cin>>n>>p;
cout< }


ProMinecraft69: Vezi ca mereu la sfarsit se afiseaza litera p, este o formula pentru care afli toate cifrele inainate de p, apoi afisezi p.Nu trebuie sa creezi vreun numar sau sir!
StelicaBulbuc: mersi!

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   unsigned long long p,k,i,t;

   cin >>p>>k;

   i=1;t=p;

   if (k%2==0)

      { i=k/2-1; t+=10; }

   else i=k/2;

   t+=i*30;

  cout<<t;

   return 0;

}

Explicație:

Trebuie de observat regula după care se generează termenii şirului pentru k par sau impar. evident primul termen este p. Pentru şirul:

9 19 39 49 69 79 99 109 129 139 159

se observă că pentru a găsi termenul cu indice k impar la primul termen se adună câţiva de 30. pentru k=5 se adună 2 de 30, pentru k=7 la primul termen se adună 7/2 de 30 şamd

La termenul cu indice k par, la primul termen mai întâi se adună 10 şi după iară câţiva de 30. Cercetează codul şi cred te descurci până la urmă. Succese. Depăşelti deoarece foloseşti cicluri...

Alte întrebări interesante