形如 2x⋅3y 的正整数有很多,但取 y=0 时就退化成纯二的幂。把 n 写成二进制,每一位上的 1 对应一项 2x,这些项两两不同、均为 2x⋅30,且之和恰好为 n。
因此只需从高位到低位枚举 n 的二进制中为 1 的位,依次输出对应的 2x 即可,自然满足从大到小。
每组数据扫描不超过 32 个二进制位。
珠宝店的砝码每枚质量都必须写成 2x⋅3y 的形式,其中 x,y 为非负整数,且任意两枚砝码质量互不相同。
给定正整数 n,需要选出若干枚这样的砝码,使它们的质量之和恰好等于 n。可以证明,对题目范围内的每个 n 都至少存在一种方案。
请输出任意一种方案,并按砝码质量从大到小排列。
测试组数 T 满足 1<T<100,每组目标质量 n 不超过 10^9。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.