আমাদের কথা খুঁজে নিন

   

UVa : 10219 (Find the ways !)



আজকের সমস্যাটি মুলত: সমাবেশ এর ধারণা থেকেই উদ্ভব। কৌতুক এর মাধ্যমে সমস্যাটিকে জীবন্ত রূপ দেয়ার চেষ্টা করা হয়েছে । ( যদিও এই ধরনের সমস্যা সমাধান ই পরে খুব কঠিন মনে হয় ) যাই হোক , আশা করি , ইতিমধ্যেই প্রশ্নটি একবার পড়ে ফেলেছেন । তবু আপনাদের স্মরণ করিয়ে দেয়ার জন্যেই বলছি : আপনাকে এমন একটি 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

সোর্স: http://www.somewhereinblog.net     বুকমার্ক হয়েছে বার

অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।