Διαδρομές
/
Clojure
Clojure
/
Ασκήσεις
/
Ο τόκος έχει ενδιαφέρον
Ο τόκος έχει ενδιαφέρον

Ο τόκος έχει ενδιαφέρον

Άσκηση εκμάθησης

Εισαγωγή

Ένας αριθμός κινητής υποδιαστολής είναι ένας αριθμός με μηδέν ή περισσότερα ψηφία μετά την υποδιαστολή. Παραδείγματα είναι τα -2.4, 0.1, 3.14, 16.984025 και 1024.0.

Διαφορετικοί τύποι κινητής υποδιαστολής μπορούν να αποθηκεύσουν διαφορετικό πλήθος ψηφίων μετά την υποδιαστολή. Αυτό ονομάζεται ακρίβειά τους. Αυτό σημαίνει ότι αν προσπαθήσεις να αποθηκεύσεις το PI σε ένα single, θα αποθηκευτούν μόνο τα πρώτα 6 έως 9 ψηφία (με το τελευταίο ψηφίο στρογγυλοποιημένο).

Οι αριθμοί κινητής υποδιαστολής στην Clojure διαβάζονται ως Double· με επίθημα M διαβάζονται ως BigDecimal.

  • Double: 8 byte (ακρίβεια ~15-17 ψηφίων). Είναι ο πιο συνηθισμένος τύπος. Γράφεται ως 2.45.
  • BigDecimal: Ακέραια τιμή χωρίς κλιμάκωση, αυθαίρετης ακρίβειας, και κλίμακα ακεραίου 32 bit. Γράφεται ως 2.45M.

Οδηγίες

Σε αυτή την άσκηση θα δουλέψεις με λογαριασμούς ταμιευτηρίου. Κάθε χρόνο, το υπόλοιπο του λογαριασμού ταμιευτηρίου σου ενημερώνεται με βάση το επιτόκιό του. Το επιτόκιο που σου δίνει η τράπεζά σου εξαρτάται από το ποσό των χρημάτων στον λογαριασμό σου (το υπόλοιπό του):

  • -3.213% για αρνητικό υπόλοιπο.
  • 0.5% για υπόλοιπο μικρότερο από 1000 δολάρια.
  • 1.621% για υπόλοιπο μεγαλύτερο ή ίσο με 1000 δολάρια και μικρότερο από 5000 δολάρια.
  • 2.475% για υπόλοιπο μεγαλύτερο ή ίσο με 5000 δολάρια.

Κάθε χρόνο, πριν ενημερωθεί το υπόλοιπο του λογαριασμού ταμιευτηρίου σου, η κυβέρνηση σου επιτρέπει να δωρίσεις ένα ποσοστό των χρημάτων σου σε φιλανθρωπικά ιδρύματα, αφορολόγητα. Επειδή είσαι καλός άνθρωπος, αν το υπόλοιπό σου είναι θετικό στο τέλος του χρόνου, δωρίζεις το διπλάσιο αυτού του ποσού σε φιλανθρωπικά ιδρύματα, στρογγυλοποιημένο προς τα κάτω στο πλησιέστερο ακέραιο δολάριο.

Έχεις τρεις εργασίες, καθεμία από τις οποίες θα ασχοληθεί με το υπόλοιπό σου και το επιτόκιό του.

1. Υπολόγισε το επιτόκιο

Υλοποίησε τη συνάρτηση interest-rate για να υπολογίσεις το επιτόκιο με βάση το συγκεκριμένο υπόλοιπο:

(interest-rate 200.75M)
;;=> 0.5

Σημείωσε ότι η τιμή που επιστρέφεται είναι Double.

2. Υπολόγισε την ετήσια ενημέρωση του υπολοίπου

Υλοποίησε τη συνάρτηση annual-balance-update για να υπολογίσεις την ετήσια ενημέρωση του υπολοίπου, λαμβάνοντας υπόψη το επιτόκιο:

(annual-balance-update 200.75M)
;;=> 201.75375M

Σημείωσε ότι η τιμή που επιστρέφεται είναι BigDecimal.

3. Υπολόγισε πόσα χρήματα θα δωρίσεις

Υλοποίησε τη συνάρτηση amount-to-donate για να υπολογίσεις πόσα χρήματα θα δωρίσεις σε φιλανθρωπικά ιδρύματα με βάση το υπόλοιπο και το αφορολόγητο ποσοστό που επιτρέπει η κυβέρνηση:

(def balance 550.5M)
(def tax-free-percentage 2.5)

(amount-to-donate balance tax-free-percentage)
;;=> 27

Σημείωσε ότι η τιμή που επιστρέφεται είναι int.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Clojure Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ο τόκος έχει ενδιαφέρον;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Clojure με 12 έννοιες105 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.