解题思路:
题目询问的是称出N重量的最少砝码 那就根据砝码个数跟重量来推公式即可

称1    需要1个砝码    砝码重量1

称2    需要2个砝码    砝码重量1 2

称3    需要2个砝码    砝码重量1 2

称4    需要2个砝码    砝码重量1 3

称5     需要3个砝码    砝码重量1 2 3

称6     需要3个砝码    砝码重量1 2 3

称7     需要3个砝码    砝码重量1 3 6

称8     需要3个砝码    砝码重量1 5 7

称9     需要3个砝码    砝码重量1 3 8

称10     需要3个砝码    砝码重量1 3 8

称11     需要3个砝码    砝码重量1 3 8

称12     需要3个砝码    砝码重量1 3 8

称13     需要3个砝码    砝码重量1 3 9

当需要称重14时3个砝码就不够了 就到了4个砝码

1个砝码最大称到1

2个砝码最大称到4

3个砝码最大称到13

看最大可称重的正整数找到规律

新一级的砝码最大称称重到:

 上一级砝码上限 × 3 + 1

用代码实现即可

注意事项:
称1需要1个砝码也要在程序中实现
参考代码:

import java.util.*;

public class P1008 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);	//Scanner输入
		
		int N = sc.nextInt();					//变量N接收输入需要称重的重量
		sc.close();								//关闭输入
		
		int sum = 0;							//变量sum用来计算可计算的重量
		for(int i = 1; i > 0; i++) {			//一直循环
			sum = sum * 3 + 1;					//用公式让sum往后推
			if(N <= sum) {						//如果sum大于等于N时则为可称出N的重量i为砝码个数
				System.out.println(i);			//输出需要最少的砝码个数
				break;							//退出
			}
		}
	}
}


点赞(0)
 

0.0分

15 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

22软工孟姿好 10月前 回复TA
我还在想dp呢看完你这个我就跟dp不熟了
hbbhb 1年前 回复TA
@少年郎 2和3怎么拼4
少年郎 1年前 回复TA
没有看明白,例如砝码5不是只要3和2不就可以了吗,为什么还要1呢
nmy 2年前 回复TA
受教了
2年前 回复TA
不孬,小伙子