[CSP-J2020] 优秀的拆分 题目描述 一般来说,一个正整数可以拆分成若干个正整数的和。 例如, 1 = 1 1=1 1=1, 10 = 1 + 2 + 3 + 4 10=1+2+3+4 10=1+2+3+4 等。对于正整数 n n n 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下, n n n 被分解为了若干个不同的 2 2 2 的正整数次幂。注意,一个数 x x
1.优秀的拆分 算法分析 奇数不存在优秀的拆分。偶数一定存在优秀的拆分。从大到小枚举2的 i i i次方,从24到1。如果 n n n大于 2 i 2^i 2i,说明 2 i 2^i 2i是他的一个拆分项,输出。 2 i 2^i 2i可以表示为 1 < < i 1<<i 1<<i。 #include <iostream>#include <cstdio>#include <cstring