无聊君


私信TA

用户名:qq2652239948

访问量:1883

签 名:

不想努力只想摆

等  级
排  名 1049
经  验 3145
参赛次数 1
文章发表 2
年  龄 0
在职情况 学生
学  校 加里敦大学
专  业 软件与信息服务

  自我简介:

The art challenges the technology, and the technology inspires the art. 艺术挑战技术,技术启发艺术。

解题思路:
题目询问的是称出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 人评分

  评论区

我还在想dp呢看完你这个我就跟dp不熟了
2024-03-08 08:42:24
没有看明白,例如砝码5不是只要3和2不就可以了吗,为什么还要1呢
2023-03-13 10:15:48
受教了
2022-03-12 11:08:43
不孬,小伙子
2022-02-25 15:57:11
  • «
  • 1
  • »