主打的就是一个短小精悍
2024-02-16 21:51:47
发布于:浙江
82阅读
0回复
0点赞
int main() {
int n;
scanf("%d",&n);
if (n % 2 == 1 || n == 0) printf("-1");
else for (int j = 29; j >= 0; j--) if (n >> j & 1) printf("%d ", 1 << j);
}
不是我不想注释,主要是我之前写的代码现在自己看不懂了(悲),有人能读懂吗?
望大佬能讲解下
全部评论 4
if里的有没有大佬解释一下,外面的看的懂
1周前 来自 广东
0n%21是判断n是否为奇数,后面的n0是判断n是否为零,因为奇数和零并不会有优秀的拆分,故
使用if语句来排除这种情况,如果n为奇数或零就直接输出-1,这样一来剩下的数就都会有优秀的拆分,再使用for循环枚举出答案1周前 来自 广东
0
真能AC!!!
啥原理呀
大佬解释一下1周前 来自 广东
0hi
2026-05-11 来自 浙江
0像是枚举
2025-10-07 来自 湖北
0
















有帮助,赞一个