仅打印数字0和1,以使它们的总和在C程序中为N。

给定一个整数n,任务是打印仅包含0和1且它们的和等于整数n的数字。

仅包含零和一的数字是1、10、11,因此我们必须打印所有可以加起来以形成等于n的和的数字。

例如,我们输入n = 31,则答案可以是10 + 10 + 11或10 + 10 + 10 + 1

示例

Input: 31

Output:10 10 10 1

算法

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

示例

#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

以上是 仅打印数字0和1,以使它们的总和在C程序中为N。 的全部内容, 来源链接: utcz.com/z/338445.html

回到顶部