একটি ইন্টিজার n দেওয়া থাকলে, শুধু ০ এবং ১ ডিজিট দিয়ে গঠিত যেসব সংখ্যার যোগফল n হবে, সেগুলো প্রিন্ট করতে হবে।
যেসব সংখ্যা শুধু ০ এবং ১ দিয়ে গঠিত: ১, ১০, ১১, ১০০, ১০১, ১১০, ১১১...
উদাহরণ
Input: 31 Output: 10 10 10 1
অ্যালগরিদম
int findNumbers(int n)
START
STEP 1: DECLARE m = n % 10, a = n
STEP 2: WHILE a > 0
IF a/10 > 0 AND a > 20 THEN
a = a - 10; PRINT "10 "
ELSE IF a - 11 == 0 THEN
a = a - 11; PRINT "11 "
ELSE
PRINT "1 "; a--
END IF
END LOOP
STOP
সি প্রোগ্রাম
#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