问题描述:
已知所有砝码重量均为3的倍数,且所有重量的砝码有且只有一个
要求输出重量1到n的所有物品的称重方式
解题思路:
用字符串拼接结果
三进制的返回值为0 1 2
返回值为0则表示该权重不取
返回值为1表示加上该权重
返回值为2表示该权重需要加上两遍,不符合题意. 故需将其转换为-1减掉该位权重,对商进行改变.
如: 2 ÷ 3 - 2 ... 0 == -1 ... 1
代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int w = input.nextInt();
for (int i = 1; i <= w; i++) {

本文介绍了如何利用三进制解法解决一个经典的算法问题:已知所有砝码重量为3的倍数,求1到n的所有物品的称重方式。通过将三进制的0、1映射到是否添加砝码,避免使用2来表示加两次,以符合题意。详细解题思路、代码实现和编译运行过程在文中均有说明。
最低0.47元/天 解锁文章
5439

被折叠的 条评论
为什么被折叠?



