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

Help please!!! Subprogramul f este definit alăturat. Indicați apelul care determină afişarea, în ordine strict descrescătoare, a tuturor divizorilor proprii pozitivi ai numărului 1000 (divizori diferiți de 1 și de 1000).

100 puncte

Anexe:

Răspunsuri la întrebare

Răspuns de daniel0806
1

In subprogramul tau variabila d creste dupa ce este apelat f(n,d++) dar nefiind varaibila globala nu o creasca niciodata. Deci, trebuie ++d nu d++, ori programul va apela acelasi f(n,d) la infinit (atata timp cat d-ul initial este mai mic decat n/2). Asa va face ++ inainte sa se reapeleze.

Cu modificarea aceasta obtii divizorii proprii ai numarului 1000 cu apelul f(1000,1). Dar si un 500 inainte deoarece subprogramul verifica de 2 ori d=500. Pentru a rezolva si problema asta trebuie sa modifici d<n/2 in d<=n/2.


grozavuadina2002: Mulțumesc!!!
Răspuns de Utilizator anonim
0

Răspuns:

Trebuie ++d, ci nu d++ .

Cu ajutorul acestei modificări obținem divizorii proprii ai

1.000 === apelul f(1.000,1)

d = 500, deoarece subprogramul verifica de 2 ori

Se modifica din d<n/2 in d<=n/2

Alte întrebări interesante