এখানে আমরা সমস্যার একটি জটিল সমাধান দেখব। আমরা কোনো সেমিকোলন ব্যবহার না করেই 1 থেকে N পর্যন্ত কিছু সংখ্যা প্রিন্ট করব।
আমরা দুটি ভিন্ন পদ্ধতিতে এই সমস্যার সমাধান করতে পারি। প্রথমটি হল পুনরাবৃত্ত পদ্ধতি, এবং দ্বিতীয়টি পুনরাবৃত্ত পদ্ধতি৷
পদ্ধতি 1
printf() ফাংশন স্ট্রিং এর দৈর্ঘ্য প্রদান করে তাই এটি একটি অ-শূন্য মান। আমরা ফলাফল প্রিন্ট করার শর্ত সহ লজিক্যাল পারফর্ম করতে পারি। তারপর কাউন্টারের মান বাড়ান।
উদাহরণ কোড
#include<stdio.h> #define N 20 int main(int num, char *argv[]) { while (num <=N && printf("%d ", num) && num++) { //The while body is empty. } }
আউটপুট
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
পদ্ধতি 2
দ্বিতীয় পদ্ধতিতে আমরা দেখব কিভাবে রিকারশন ব্যবহার করে একই কাজ করা যায়। আমরা প্রধান ফাংশন সঙ্গে passsome যুক্তি হবে. এই প্রধানটিকে পুনরাবৃত্তভাবে বলা হবে৷
৷উদাহরণ কোড
#include<stdio.h> #define N 20 main(int val) { if (val <=N && printf("%d ", val) && main(val + 1)) { //Body is empty } }
আউটপুট
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20