Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
167855 | C班詹皓杰 | 二进制半整数 | C++ | 通过 | 100 | 26 MS | 248 KB | 747 | 2024-08-19 19:40:49 |
#include<iostream> using namespace std; /*const int a[] = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,...};*/ int binpow(int a,int b){ int res = 1; while(b > 0){ if(b & 1){ res *= a; } a *= a; b >>= 1; } return res; } bool check(int n){ for(int i = 0; i <= 30; i++){ for(int j = 0; j <= 30; j++){ if(binpow(2,i)+binpow(2,j) == n){ return true; } } } return false; } int main(){ int T,n; for(cin>>T; cin>>n; cout<<(check(n) ? "yes" : "no")<<'\n'); return 0; }