Πρόγραμμα: silver.c
Ένας τρόπος να προσεγγίσουμε την τιμή του \(\sqrt{2}\) είναι μέσω της παράστασης:
\[1 + \sqrt{2} = 2 + \frac{1}{2 + \frac{1}{2 + \frac{1}{2 + \cdots}}}\]Όπου η προσθήκη του κάθε όρου \(\frac{1}{2 + \cdots}\) βελτιώνει την προσέγγιση. Γράψτε ένα πρόγραμμα το οποίο παίρνει ως όρισμα έναν θετικό ακέραιο που αναπαριστά τον αριθμό των όρων \(\frac{1}{2 + \cdots}\) που θέλουμε να χρησιμοποιηθούν και τυπώνει την προσέγγιση του \(\sqrt{2}\) με 20 δεκαδικά ψηφία ακριβείας. Παραδείγματα εκτέλεσης ακολουθούν:
$ ./silver 1
sqrt(2) = 1.00000000000000000000
$ ./silver 2
sqrt(2) = 1.50000000000000000000
$ ./silver 3
sqrt(2) = 1.39999999999999991118
$ ./silver 4
sqrt(2) = 1.41666666666666651864
$ ./silver 5
sqrt(2) = 1.41379310344827580082
$ ./silver 1000
sqrt(2) = 1.41421356237309492343
Για έναν όρο η δεξιά παράσταση είναι (2 + 0) -> sqrt(2) = 1, για 2 όρους η δεξιά παράσταση είναι (2 + 1 / 2) -> sqrt(2) = 1.5, κοκ.
Το συνεχές κλάσμα υπολογίζεται εύκολα από μέσα προς τα έξω: ξεκινήστε από τον πιο εσωτερικό όρο και επαναλάβετε με έναν βρόχο. Προσέξτε πώς μετράνε οι όροι στα παραδείγματα (1 όρος δίνει 1) και ότι η παράσταση δίνει 1 + √2, όχι √2. Ελέγξτε ότι το όρισμα είναι θετικός ακέραιος.
Αριθμός στον οδηγό: Α6.21
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2023-fall-ex10-q2 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex10-q2.html ·
Markdown (GitHub)