আসুন আমরা ফিবোনাচি ক্রমটি সংজ্ঞায়িত করি
F(1) = 1
F(2) = 2
F(n) = F(n - 2) + F(n - 1)
সুতরাং আমাদের কাছে অসীম ক্রম রয়েছে 1,2,3,5,8,13,
... এটি সুপরিচিত যে কোনও ধনাত্মক পূর্ণসংখ্যা কিছু ফিবোনাকির সংখ্যার যোগ হিসাবে লেখা যায়। একমাত্র সতর্কতা হল এই সংমিশ্রণটি অনন্য হতে পারে না। ফিবোনাচি সংখ্যাগুলির যোগফল হিসাবে একটি সংখ্যা লেখার সর্বদা কমপক্ষে একটি উপায় রয়েছে তবে আরও অনেক বেশি থাকতে পারে।
আপনার চ্যালেঞ্জটি হ'ল একটি সম্পূর্ণ প্রোগ্রাম লিখুন যা স্টিডিন ব্যবহার করে এক থেকে দশ মিলিয়নের মধ্যে একটি ধনাত্মক পূর্ণসংখ্যার মধ্যে নিয়ে যায় এবং তারপরে ইনপুট পর্যন্ত যোগ হওয়া ফিবোনাচি সংখ্যার সম্ভাব্য সংক্ষিপ্তসারগুলি স্টার্টআউট ব্যবহার করে আউটপুট দেয়। সংক্ষেপে, ফিবোনাচি নম্বরগুলি অবশ্যই পুনরাবৃত্তি করতে হবে না এবং এর মধ্যে নম্বরটি অন্তর্ভুক্ত রয়েছে 1
। যে কোনও সংক্ষেপে, 1
উপস্থিত থাকলে তা অবশ্যই একবার উপস্থিত থাকতে হবে কারণ উপরের ক্রমের আমার সংজ্ঞায় 1
কেবল একবার উপস্থিত হবে। কেবলমাত্র পদটির সাথে সংক্ষেপগুলি বৈধ হয় তাই যদি ইনপুট নম্বরটি নিজেই একটি ফিবোনাচি নম্বর হয় তবে সংখ্যাটি নিজেই একটি বৈধ যোগফল এবং মুদ্রিত হওয়া আবশ্যক। যদি একাধিক অঙ্ক হয়, তবে যে কোনও দুটি যোগফলের মধ্যে সহজেই তাদের মধ্যে পার্থক্য করার জন্য একটি ফাঁকা রেখা থাকতে হবে।
এখানে কিছু নমুনা দেওয়া হল।
./myfib 1
1
এই জাতীয় একটি মাত্র আছে এবং এটির কেবলমাত্র পদ রয়েছে তাই এটি মুদ্রিত।
./myfib 2
2
এখানে নোট করুন এটি 1+1
বৈধ যোগফল নয় কারণ 1
পুনরাবৃত্তি করে।
./myfib 3
1+2
3
দুটি যোগফল এবং সেগুলি উভয়ই ফাঁকা রেখা দিয়ে মাঝখানে মুদ্রিত হয়।
./myfib 10
2+8
2+3+5
./myfib 100
3+8+89
1+2+8+89
3+8+34+55
1+2+3+5+89
1+2+8+34+55
3+8+13+21+55
1+2+3+5+34+55
1+2+8+13+21+55
1+2+3+5+13+21+55
সত্য কোড-গল্ফ। যে কোনও ভাষার সবচেয়ে সংক্ষিপ্ত কোডটি জয়ী হয়। কিছু পরীক্ষার ক্ষেত্রে আপনার কোড পোস্ট করুন (আমি উপরে যেটি দিয়েছি তা ছাড়াও)। সম্পর্কের ক্ষেত্রে, আমি কমপক্ষে দুই সপ্তাহ এবং সম্ভবত আরও দীর্ঘ অপেক্ষা করার পরে সর্বোচ্চ আপভোটগুলির সাথে একটিটি বেছে নিই। সুতরাং সম্প্রদায় দয়া করে আপনার পছন্দ মতো যে কোনও সমাধানের জন্য নির্দ্বিধায় যেতে পারেন। কোডটির চতুরতা / সৌন্দর্যটি প্রথমে কে পোস্ট করে তার চেয়ে অনেক বেশি গুরুত্বপূর্ণ।
শুভ কোডিং!