Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α6.21 · Ασημένιο Κλάσμα

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #10, Θέμα 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 6, 3, 4

Πρόγραμμα: 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)