371
Se dau numerele naturale nenule a, b, c, n, urmate de o secvența de n numere naturale distincte ordonate crescător, notată cu s.
Cerința
Scrieți în limbajul C++ definiția completă a subprogramului diofantic care are 5 parametri, după cum urmează:
Exemplu
Fie secvența:
5
0 3 4 5 18
Pentru a=1, b=1, c=25 funcția va returna valoarea 4.
Cele 4 perechi sunt: (3,4), (4,3), (0,5), (5,0).
Important
Soluția propusă va conține doar definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.
int diofantic(int n, int s[], int a,long long b,int c)
{
int k=0;int i=1; int j=n;
while(i<=n && j>0)
{
if(a*s[i]*s[i]+b*s[j]*s[j]==c )
{
k++;
i++;
}
if(a*s[i]*s[i]+b*s[j]*s[j]<c)
i++;
if(a*s[i]*s[i]+b*s[j]*s[j]>c)
j--;
}
return k;
}
Comentarii