এই সমস্যায়, আমাদের দুটি সংখ্যা দেওয়া হয়েছে N এবং K। আমাদের কাজ হল এমন একটি প্রোগ্রাম তৈরি করা যা কোনো লুপ ব্যবহার না করেই সংখ্যা সিরিজ প্রিন্ট করবে।
যে সিরিজটি প্রিন্ট করা হবে তা n থেকে শুরু হবে এবং k দ্বারা বিয়োগ করা হবে যতক্ষণ না এটি শূন্য বা ঋণাত্মক হয়ে যায়। এর পরে, আমরা এটিতে k যোগ করতে শুরু করব যতক্ষণ না এটি আবার n হয়ে যায়। এই প্রক্রিয়া হলে আমরা কোনো ধরনের লুপ ব্যবহার করতে পারি না।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
n = 12 , k = 3
আউটপুট
12 9 6 3 0 3 6 9 12
একটি লুপ ব্যবহার না করে এই সমস্যাটি সমাধান করতে আমরা পুনরাবৃত্তি ব্যবহার করব। আমরা একটি পুনরাবৃত্ত ফাংশন তৈরি করব যেটি আবার কল করবে এবং সংখ্যার মান পরীক্ষা করে দেখবে যে কোন ক্রিয়াকলাপ যোগ বা বিয়োগের আউট নম্বরটিতে একটি হবে।
ফাংশনটি একটি পতাকা ব্যবহার করবে যা আমাদের মানটি বিয়োগ বা যোগ করা হবে কিনা তা ট্র্যাক রাখতে সাহায্য করবে৷
কোন লুপ ব্যবহার না করেই নম্বর সিরিজ প্রিন্ট করার জন্য সি প্রোগ্রাম
// কোনো লুপ ব্যবহার না করেই নম্বর সিরিজ প্রিন্ট করার জন্য সি প্রোগ্রাম
উদাহরণ
#include <iostream> using namespace std; void PrintSeriesRec(int current, int N, int K, bool flag){ cout<<current<<"\t"; if (current <= 0) flag = !flag; if (current == N && !flag) return; if (flag == true) PrintSeriesRec(current - K, N, K, flag); else if (!flag) PrintSeriesRec(current + K, N, K, flag); } int main(){ int N = 12, K = 4; cout<<"The series is : \n"; PrintSeriesRec(N, N, K, true); return 0; }
আউটপুট
সিরিজটি হল −
12 8 4 0 4 8 12