NC214098. DismantlingNumber
描述
输入描述
输入一个正整数
输出描述
输出一行字符串"YES"或"NO"(不包含引号)
示例1
输入:
10
输出:
YES
说明:
示例2
输入:
4
输出:
NO
示例3
输入:
1024
输出:
YES
说明:
Python3(3.9) 解法, 执行用时: 58ms, 内存消耗: 2936K, 提交时间: 2020-11-27 19:34:13
n = int(input()) flag = 0 for i in range(1, 32): for j in range(1, 32): for k in range(1, 32): if (pow(2, i) + pow(2, j) + pow(2, k) == n): flag = 1 if flag == 1: print('YES') else: print('NO')
C(clang11) 解法, 执行用时: 2ms, 内存消耗: 372K, 提交时间: 2020-12-06 11:16:39
#include <stdio.h> int main(){ int n; scanf("%d", &n); int amount=0; if(n<=4 || n%2!=0) { printf("NO\n"); return 0; } while(n){ if(n%2==1) amount++; n>>=1; } if(amount<=3) printf("YES\n"); else printf("NO\n"); return 0; }
C++ 解法, 执行用时: 3ms, 内存消耗: 404K, 提交时间: 2021-10-16 15:39:29
#include<bits/stdc++.h> using namespace std;int main(){int _;cin>>_;cout<<(__builtin_popcountll(_)<=3&&_>5&&!(_&1)?"YES\n":"NO\n");}