Computer >> Máy Tính >  >> Lập trình >> lập trình C

In các số chỉ có các chữ số 0 và 1 sao cho tổng của chúng là N trong C Chương trình.

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