কাজটি হলো n সংখ্যা প্রিন্ট করা যাতে তাদের বাইনারি রিপ্রেজেন্টেশনে ঠিক দুটি সেট বিট থাকে, ন্যূনতম ২ এবং অধিকতম ২।
কম্পিউটার ল্যাঙ্গুয়েজে সেট বিট মানে যাদের মান ১ এবং আনসেট বিট মানে যাদের মান ০।
Input: value of num=5 Output: 1 3 5 As 1 is equivalent to 1 in binary 3 is equivalent to 11 in binary 5 is equivalent to 101 in binary
অ্যালগরিদম
START Step 1 -> declare variable as unsigned int num=5 and int i=1 Step 2 -> print i Step 3 -> Loop For i=3 and i<=num and ++i IF (!(i-1 & i-2)) Print i End End STOP
উদাহরণ
#include <stdio.h> int main(int argc, char const *argv[]) { unsigned int num = 5; int i = 1; printf("%d ", i); //printing first number 1 for (i = 3; i <= num; ++i) { if(!(i-1 & i-2)) //performing and operation on i-1 and i-2 printf("%d ", i); } return 0; }আউটপুট
যদি উপরের প্রোগ্রামটি রান করি তবে নিচের আউটপুট জেনারেট হবে
1 3 5