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<
}
Răspunsuri la întrebare
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...