解题思路:
题目询问的是称出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分
15 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复