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

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

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

Εισαγωγή

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

Διαφορετικοί τύποι κινητής υποδιαστολής μπορούν να αποθηκεύσουν διαφορετικό πλήθος ψηφίων μετά την υποδιαστολή· αυτό ονομάζεται ακρίβειά τους.

Η Go έχει δύο τύπους κινητής υποδιαστολής:

  • float32: 32 bit (ακρίβεια ~6-9 ψηφίων).
  • float64: 64 bit (ακρίβεια ~15-17 ψηφίων). Αυτός είναι ο προεπιλεγμένος τύπος κινητής υποδιαστολής.

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

Από προεπιλογή, η Go χρησιμοποιεί float64 για τους αριθμούς κινητής υποδιαστολής, εκτός αν ο αριθμός κινητής υποδιαστολής:

  1. αντιστοιχιστεί σε μια μεταβλητή με τύπο float32, ή
  2. επιστραφεί από μια συνάρτηση με τύπο επιστροφής float32, ή
  3. περαστεί ως όρισμα στη συνάρτηση float32().

Το [πακέτο math] περιέχει πολλές χρήσιμες μαθηματικές συναρτήσεις.

Οδηγίες

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

  • 3,213% για υπόλοιπο μικρότερο από 0 δολάρια (το υπόλοιπο γίνεται πιο αρνητικό).
  • 0,5% για υπόλοιπο μεγαλύτερο ή ίσο με 0 δολάρια και μικρότερο από 1000 δολάρια.
  • 1,621% για υπόλοιπο μεγαλύτερο ή ίσο με 1000 δολάρια και μικρότερο από 5000 δολάρια.
  • 2,475% για υπόλοιπο μεγαλύτερο ή ίσο με 5000 δολάρια.

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

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

Υλοποίησε τη συνάρτηση InterestRate() για να υπολογίσεις το επιτόκιο με βάση το καθορισμένο υπόλοιπο:

InterestRate(200.75)
// => 0.5

Σημείωσε ότι η τιμή επιστροφής είναι float32.

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

Υλοποίησε τη συνάρτηση Interest() για να υπολογίσεις τον τόκο με βάση το καθορισμένο υπόλοιπο:

Interest(200.75)
// => 1.003750

Σημείωσε ότι η τιμή επιστροφής είναι float64.

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

Υλοποίησε τη συνάρτηση AnnualBalanceUpdate() για να υπολογίσεις την ετήσια ενημέρωση του υπολοίπου, λαμβάνοντας υπόψη το επιτόκιο:

AnnualBalanceUpdate(200.75)
// => 201.75375

Σημείωσε ότι η τιμή επιστροφής είναι float64.

4. Υπολόγισε τα χρόνια μέχρι να φτάσεις στο επιθυμητό υπόλοιπο

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

balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14

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

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

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

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