- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Print numbers with digits 0 and 1 only such that their sum is N in C Program.
Given an integer n, the task is to print the numbers who consist only 0’s and 1’s and their sum is equal to the integer n.
The numbers which contain only zeros and ones are 1, 10, 11 so we have to print all those numbers which can be added to form the sum equal to n.
Like, we entered n = 31 then the answer can be 10+10+11 or 10+10+10+1 the
Example
Input: 31 Output:10 10 10 1
Algorithm
int findNumbers(int n) START STEP 1: DECLARE AND ASSIGN VARAIBALES m = n % 10, a = n STEP 2: LOOP WHILE a>0 IF a/10 > 0 && a > 20 THEN, SUBTARCT 10 FROM a AND STORE BACK IT IN a PRINT "10 " ELSE IF a-11 == 0 THEN, SUBTRACT 11 FROM a AND STORE BACK IN a PRINT "11 " ELSE PRINT "1 " DECREMENT a BY 1 END IF END LOOP STOP
Example
#include <stdio.h> // Function to count the numbers 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--; } } } // Driver code int main(){ int N = 35; findNumbers(N); return 0; }
Output
If we run the above program then it will generate the following output:
10 10 1 1 1 1 11
Advertisements