我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

判断一个数是否为2的n次方(n为正数)

判断一个数是否为2的n次方(n为正数)
int main()
{
int n = 0;
scanf("%d",&n);
if(n & (n - 1) == 0)
{
printf("是\n");
}
else
printf("不是\n");
return 0;
}
大家帮我看下代码哪里错了

等号==优先级高于逻辑与&符号,所以要加括号
n & (n - 1) == 0改为 ( n & (n - 1) )== 0

if(n & (n - 1) == 0)
改为
if((n&(n-1)) == 0)

直接判断%2的结果不就好了,怎么简单怎么来

近期文章

  • Unity触发传参//多对象用一个触发器
  • Internet上的虚拟主机是如何运作的?
  • 给一幅图加上背景文字
  • linux如何实现软件试用期功能
  • Flask局域网访问超时
  • VS Code安装好了,头文件报错
  • 《爬虫》代码运行没有问题,但是没有文本输出是怎么回事
  • PhpStorm无法解锁文件(Ionic)
  • 能ping通但是arp表没有,必须交换机ping通,才有arp表
  • pwm输出设置与实际不同,疑为硬件问题
  • java爬虫放到腾讯宝塔linux上就不行了
  • 创建Date对象保存学生入校日期,学籍有效期3年
  • 为什么会出现 Spring项目 Error:java 错误 不支持发行版本 5 IDEA解决办法
  • 请问反汇编如何更改常量字符串?
  • git/git bash 如何实现软链接
  • devc++报错,在线工具没问题
  • PHP(OOP):如何在每个方法中调用一个新方法
  • 这个伪代码在latex上怎么表示
  • 初学者对python的for in用法产生的疑惑
  • 求ESP8266适配技小新教程的风扇代码

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华