আজকের সমস্যাটি মুলত: সমাবেশ এর ধারণা থেকেই উদ্ভব। কৌতুক এর মাধ্যমে সমস্যাটিকে জীবন্ত রূপ দেয়ার চেষ্টা করা হয়েছে । ( যদিও এই ধরনের সমস্যা সমাধান ই পরে খুব কঠিন মনে হয় )
যাই হোক , আশা করি , ইতিমধ্যেই প্রশ্নটি একবার পড়ে ফেলেছেন । তবু আপনাদের স্মরণ করিয়ে দেয়ার জন্যেই বলছি : আপনাকে এমন একটি program লিখতে হবে যেটির দ্বায়িত্ব হবে nCr=n!/(n-r)!r! এ যতটি digit আছে তা খুঁজে বের করতে পারবে । বুঝতে পারেননি ! ঠিক আছে , একটা উদাহরণের মাধ্যমেই তা পরিষ্কার হয়ে আসবে।
যেমন : 10C5=(10,5)=10!/5!5! =252 . 252 এ digit আছে 3টি । ঠিক তেমনি : 20C5 এ digit আছে 5টি ::100C10 এ digit আছে 14টি ; 200C15 এ digit আছে 23 টি ।
আপনাকে দুইটি সংখ্যা(n,r) input হিসেবে দেয়া হবে। আপনাকে output দিতে হবে nCr এ কয়টি digit আছে ?
ফাঁদে পা দিবেন না :
UVa এর সমস্যা গুলো সাধারণত সেট করা হয়ে থাকে আপনাকে ফাঁদে ফালানোর জন্য। আপনি যদি ফাঁদে পা না দিতে চান , তাহলে নিচের পদক্ষেপগুলো ভালোভাবে লক্ষ্য করূন :
১. nCr এর জন্য r এর সীমা দেয়া থাকলেও n এর সবোর্চ্চ মান কত হতে পারে তা বলা হয়নি ।
২.তবে বলা হয়েছে output এ যা দেখাতে হবে তার সবোর্চ্চ মান হবে 2^31-1. কাজেই আপনি variable গুলো integer type এর নিতে পারেন।
লজিক প্রক্রিয়া :
১. আপনাকে দেখাতে হবে nCr এ কতটি digit আছে ? এই জন্য আমরা 10 ভিত্তিক log ব্যবহার করতে পারি ।
২.আমাদের output হবে , output = floor ( log10 (nCk) ) + 1
।
অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।