Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
166296 | A班-黄飞博 | 二进制半整数 | C++ | 解答错误 | 0 | 1 MS | 252 KB | 431 | 2024-08-19 10:56:26 |
#include <bits/stdc++.h> int main() { int t; long long n; scanf("%d",&t); while(t--){ scanf("%lld",&n); while(!(n&1)) n>>=1; //循环右移1位 // n=2^i + 2^j = 2^i(1 + 2^(j-i)),先去除2^i n--; // 剩余的数-1 if(n&(n-1)) printf("No\n"); // 判断剩余的数-1后2^(j-i),是否为2的整数幂 else printf("Yes\n"); } return 0; }