1 条题解
-
0
思路分析
1. 任务拆解:
- 读取整数n
- 判断n是否为负数(负数不是2的幂)
- 通过循环计算2的幂次,直到找到等于n或超过n
- 根据结果输出YES或NO
2. 关键点分析:
- 2的幂必须是正整数
- 使用循环计算2的各个幂次进行比较
- 当计算值等于n时是2的幂,超过n时不是
3. 步骤规划:
- 读取n的值
- 如果n是负数,直接输出NO
- 初始化i=0,s=0
- 循环计算2的幂次直到s≥n:
- s = 2^i
- i加1
- 检查s是否等于n,输出相应结果
4. 代码对应:
cin>>n;→ 读取整数nif(n<0) cout<<"NO"; return 0;→ 处理负数情况while(s<n)→ 循环计算2的幂次s=pow(2,i); i++;→ 计算2的i次方并递增指数if(s==n) cout<<"YES"; else cout<<"NO";→ 判断并输出结果
- 1
信息
- ID
- 4138
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 91
- 已通过
- 38
- 上传者