打印具有第一位和最后一位作为唯一设置位的数字

任务是打印给定的n个数字,该n个数字恰好具有两个不小于2也不大于2的设置位。

用计算机语言设置的位是值为1的位,未设置的位是值为0的位

Input: value of num=5

Output: 1 3 5

   As 1 is equivalent to 1 in binary

      3 is equivalent to 11 in binary

      5 is equivalent to 101 in binary

算法

START

Step 1 -> declare variable as unsigned int num=5 and int i=1

Step 2 -> print i

Step 3 -> Loop For i=3 and i<=num and ++i

   IF (!(i-1 & i-2))

      Print i

   End

End

STOP

示例

#include <stdio.h>

int main(int argc, char const *argv[]) {

   unsigned int num = 5;

   int i = 1;

   printf("%d ", i); //printing first number 1

   for (i = 3; i <= num; ++i) {

      if(!(i-1 & i-2)) //performing and operation on i-1 and i-2

      printf("%d ", i);

   }

   return 0;

}

输出结果

如果我们运行上面的程序,它将生成以下输出

1 3 5

以上是 打印具有第一位和最后一位作为唯一设置位的数字 的全部内容, 来源链接: utcz.com/z/345474.html

回到顶部