Rezolvare BAC Informatica 2009 – Varianta 52 – Subiectul al III-lea problema 4
Mai jos puteti gasi rezolvarea problemei 4 de la subiectul III din varianta 52 pentru examenul de bacalaureat din anul 2009
Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂
Nu exista o rezolvare mai putin matematica?
Ba da. O solutie banala ar fi sa se parcurga numerele de la 0 pana la n – k. La fiecare astfel de numar, se face suma urmatorilor k termeni (ori cu formula matematica, ori printr-un for). Vrem ca suma asta sa fie n. Daca e mai mare, ne oprim si afisam “Nu exista”. O alta solutie ar fi gasirea numarului prim cautare binara in intervalul (0, n-k). Conditia e ca suma dintre elementul din mijloc si urmatorii k sa fie egala cu n. Daca e mai mica ne ducem in stanga, iar daca e mai mare ne ducem in dreapta.
Multumesc mult! O las aici, in caz ca mai doreste cineva:
#include
using namespace std;
int i,j,k,n,s;
int main()
{
cin>>n>>k;
for(i=1; i<=n-k; i++)
{
for(j=i; jn)
{
cout<<"nu exista";
break;
}
if(s==n)
{
for(j=i; j<=k+i-1; j++)
cout<<j<<" ";
break;
}
s=0;
}
return 0;
}
Ups, se pare ca au mai disparut cateva intructiuni la postare 😀 la al doilea for e de la j n) ..