एक पूर्णांक n दिया गया है, उन संख्याओं को प्रिंट करना है जिनमें केवल 0 और 1 होते हैं और उनका योग पूर्णांक n के बराबर होता है।
जिन संख्याओं में केवल शून्य और एक होते हैं वे हैं 1, 10, 11 इसलिए हमें उन सभी संख्याओं को प्रिंट करना है जिन्हें जोड़कर n के बराबर योग बनाया जा सके।
जैसे, हमने n = 31 दर्ज किया तो उत्तर 10+10+11 या 10+10+10+1 हो सकता है।
उदाहरण
इनपुट: 31 आउटपुट: 10 10 10 1
एल्गोरिदम
int findNumbers(int n)
शुरुआत
चरण 1: m = n % 10, a = n घोषित और असाइन करें
चरण 2: जब तक a > 0 लूप
यदि a/10 > 0 && a > 20 तो,
a से 10 घटाएं और वापस a में स्टोर करें
"10 " प्रिंट करें
अन्यथा यदि a-11 == 0 तो,
a से 11 घटाएं और वापस a में स्टोर करें
"11 " प्रिंट करें
अन्यथा
"1 " प्रिंट करें
a को 1 से घटाएं
समाप्त यदि
लूप समाप्त
समाप्त
उदाहरण
#include <stdio.h>
// संख्याओं को गिनने का फंक्शन
int findNumbers(int n){
int m = n % 10, a = n;
while(a > 0){
if( a/10 > 0 && a > 20 ){
a = a - 10;
printf("10 ");
}
else if(a - 11 == 0 ){
a = a - 11;
printf("11 ");
}
else{
printf("1 ");
a--;
}
}
}
// ड्राइवर कोड
int main(){
int N = 35;
findNumbers(N);
return 0;
}
आउटपुट
यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:
10 10 1 1 1 1 11