解题思路:
题目询问的是称出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 人评分
简单的for循环浏览:1408 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:934 |
WU-整数平均值 (C++代码)浏览:1237 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:464 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:526 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:522 |
IP判断 (C语言描述,蓝桥杯)浏览:1092 |
母牛的故事 (C语言代码)浏览:549 |
简单的a+b (C语言代码)浏览:414 |
关于float,double变量的几点说明浏览:1810 |