Cosa stampa il seguente programma, con input 5?
int main() { float x,y,z; x=0; y=0; scanf("%f", &z); do { x=x+1; y=y+1/x; } while(!(y > z)); printf ("%f\n",x); }Risposte:
- 5
- 12
- 25
- nessuna delle precedenti.
Soluzione: d (nessuna delle precedenti).
Il programma calcola la somma
1+1/2+1/3+1/4+…
finché non raggiunge il valore 5 e visualizza quanti valori ha dovuto sommare, 83.
La crescita è molto lenta: calcolando la somma fino a 25 addendi si ottiene 3.81…
- 5: 1+1/2+1/3+1/4+1/5 = 2.283…
- 12: 1+…+1/12 = 3.103…
- 25: 1+…+1/25 = 3.815…
- 83: 1+…1/83 = 5.002…