N 0 और M 1 का क्रम ऐसा होना चाहिए कि इस प्रकार बने अनुक्रम में लगातार तीन 1 के साथ लगातार दो 0 न हों।
इनपुट -एन=5 एम=9
आउटपुट - 1 1 0 1 1 0 1 1 0 1 0 1 0 1
नोट - उपरोक्त अनुक्रम बनाने के लिए, कथन (m
यह सलाह दी जाती है कि पहले प्रश्न तर्क को पढ़ें और सीधे नीचे दिए गए समाधान पर कूदने के बजाय स्वयं को आजमाएं।
एल्गोरिदम
START Step 1 -> take values in ‘n’ and ‘m’ Step 2 -> Loop IF m=n-1 Loop While m>0 and n>0 Print 01 Decrement m and n by 1 End Loop While Loop IF n!=0 Print 0 End IF Loop IF m!=0 Print 1 End IF Step 3-> Else (m < n-1) || m >= 2 * (n + 1) Print cn’t have sequence for this Step 4 -> Else Loop While m-n > 1 && n > 0 Print 1 1 0 Decrement m by 2 and n by 1 End While Loop While n>0 Print 1 0 Decrement m and n by 1 End While Loop While m>0 Print 1 Decrement m by 1 End While Step 5-> End Else STOP
उदाहरण
#include <stdio.h> #include <math.h> int main() { int n =5, m=9; if( m == n-1 ) { //If m is 1 greater than n then consecutive 0's and 1's while( m > 0 && n > 0 ) { //Loop until all m's and n's printf("01"); m--; n--; } if ( n!=0 ) //Print the remaining 0 printf("0"); if( m!=0 ) //Print the remaining 1 printf("1"); } else if ( (m < n-1) || m >= 2 * (n + 1) ) { //If this is true the sequence can't be made printf("Can't have sequence for this\n"); } else { while( m-n > 1 && n > 0 ) { printf("1 1 0 "); m -= 2; n--; } while ( n > 0 ) { printf("1 0 "); n--; m--; } while ( m > 0 ) { printf("1 "); m--; } } return 0; }
आउटपुट
यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा।
1 1 0 1 1 0 1 1 0 1 0 1 0 1