Cho một số nguyên n, nhiệm vụ là in các số chỉ gồm 0 và 1 và tổng của chúng bằng số nguyên n.
Các số chỉ chứa các số không và các số đơn vị là 1, 10, 11 vì vậy chúng ta phải in tất cả các số đó có thể được cộng lại để tạo thành tổng bằng n.
Giống như, chúng tôi đã nhập n =31 thì câu trả lời có thể là 10 + 10 + 11 hoặc 10 + 10 + 10 + 1
Ví dụ
Input: 31 Output:10 10 10 1
Thuật toán
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
Ví dụ
#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; }
Đầu ra
Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau:
10 10 1 1 1 1 11