সুদ মজাদার

সুদ মজাদার

লার্নিং অনুশীলনী

ভূমিকা

একটি ফ্লোটিং-পয়েন্ট সংখ্যা হলো এমন একটি সংখ্যা, যার দশমিক চিহ্নের পরে শূন্য বা তার বেশি ডিজিট থাকতে পারে। উদাহরণ: -2.4, 0.1, 3.14, 16.984025 এবং 1024.0।

ভিন্ন ভিন্ন ফ্লোটিং-পয়েন্ট টাইপ দশমিক চিহ্নের পরে ভিন্ন সংখ্যক ডিজিট সংরক্ষণ করতে পারে, আর এটাকেই তার প্রিসিশন বলা হয়। এর মানে হলো, একটি single-এ PI সংরক্ষণ করার চেষ্টা করলে শুধু প্রথম ৬ থেকে ৯টি ডিজিটই সংরক্ষিত হবে (শেষ ডিজিটটি রাউন্ড হয়ে যাবে)।

Clojure-এ ফ্লোটিং পয়েন্ট সংখ্যাগুলো Doubles হিসেবে পড়া হয়; আবার M প্রত্যয় থাকলে সেগুলো BigDecimals হিসেবে পড়া হয়।

  • Double: ৮ বাইট (~১৫-১৭ ডিজিটের প্রিসিশন)। এটি সবচেয়ে কমন টাইপ। এভাবে লেখা হয়: 2.45।
  • BigDecimal: যেকোনো প্রিসিশনের ইন্টিজার আনস্কেলড মান এবং একটি ৩২-বিট ইন্টিজার স্কেল। এভাবে লেখা হয়: 2.45M।

নির্দেশনা

এই অনুশীলনীতে আপনি সঞ্চয়ী হিসাব নিয়ে কাজ করবেন। প্রতি বছর আপনার সঞ্চয়ী হিসাবের ব্যালেন্স তার সুদের হারের ভিত্তিতে হালনাগাদ হয়। আপনার ব্যাংক যে সুদের হার দেয় তা নির্ভর করে আপনার হিসাবে থাকা অর্থের পরিমাণের (অর্থাৎ তার ব্যালেন্সের) উপর:

  • ঋণাত্মক ব্যালেন্সের ক্ষেত্রে -3.213%.
  • 1000 ডলারের কম ব্যালেন্সের ক্ষেত্রে 0.5%.
  • 1000 ডলার বা তার বেশি এবং 5000 ডলারের কম ব্যালেন্সের ক্ষেত্রে 1.621%.
  • 5000 ডলার বা তার বেশি ব্যালেন্সের ক্ষেত্রে 2.475%.

প্রতি বছর, আপনার সঞ্চয়ী হিসাবের ব্যালেন্স হালনাগাদ হওয়ার আগে, সরকার আপনাকে করমুক্তভাবে আপনার অর্থের একটি শতাংশ দাতব্য সংস্থাকে দান করার সুযোগ দেয়। যেহেতু আপনি একজন ভালো মানুষ, তাই বছর শেষে আপনার ব্যালেন্স ধনাত্মক থাকলে আপনি এই পরিমাণের দ্বিগুণ দাতব্য সংস্থাকে দান করেন, যা নিকটতম পূর্ণ ডলারে নামিয়ে আনা হয়।

আপনার সামনে তিনটি কাজ আছে, যার প্রতিটিতে আপনার ব্যালেন্স ও তার সুদের হার নিয়ে কাজ করতে হবে।

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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।