QQ登录

只需要一步,快速开始

 注册地址  找回密码

最少砝码 Java解决

发布者: 2744557306 | 发布时间: 2024-3-29 16:40| 查看数: 58| 评论数: 0|帖子模式

问题描述】
1 u9 i1 z! t7 u8 Y$ l. v, p你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意小于等于 N 的正整数重量。) f% e1 |+ o' c$ `3 C8 s
那么这套砝码最少需要包含多少个砝码?
5 f4 d7 {! Y+ Z2 `3 {3 L1 S注意砝码可以放在天平两边。& J/ I; e( u8 c  b
3 _* ?  }+ P: _1 J  d' k
【输入格式】
, N0 x' p0 G$ s6 t3 j& x& R5 _输入包含一个正整数 N。% N" k; g, ~- q' |4 d2 @6 |; j
( L  b4 a; f9 Z5 F) M1 Q+ ?; \! K
【输出格式】
5 Z- e5 k7 J+ {' t  m! C( s输出一个整数代表答案。
0 `. \$ c: U1 \1 k/ |% ]0 p) x3 |
4 v( c) e! D1 L  Z2 R【样例输入】; H0 T/ ?' I6 ^( C
7
  j: w; }8 N4 z5 U2 v2 d) ?; M) ~' u" {1 A8 A6 R
【样例输出】8 A4 R$ V: e# ~+ n6 _. M0 c
3: Y: w" i% M6 T2 Y" \
& x2 F& i4 m- B4 [& V' K
【样例说明】- H# i  Z( w6 O! }
3 个砝码重量是 1、4、6,可以称出 1 至 7 的所有重量。7 O8 j& ^! k1 w5 M
1 = 1;, m( S4 I% [2 }* J5 n
2 = 6 − 4 (天平一边放 6,另一边放 4);; {6 W' m& J5 t1 I- M
3 = 4 − 1;# [* _( h3 r7 j
4 = 4;
  n4 I3 _7 i) Q5 = 6 − 1;
0 X( z# {( d9 U- Q7 U: X6 = 6;8 S6 o- E/ y) v- p7 g9 J2 A
7 = 1 + 6;
4 Y( K( W5 R% L6 V* }0 {/ G) J少于 3 个砝码不可能称出 1 至 7 的所有重量。
  1. import java.util.Scanner;  
    , {. p& a& V+ t' o) b5 F
  2. public class Main {  0 C) Q6 E# Q% n* Z
  3.     public static void main(String[] args) {  
    $ T! B+ |# {0 f
  4.         int n = new Scanner(System.in).nextInt();   
    4 c3 H( Q# G, P; w
  5.         int maxWeight = 1, minCnt = 1;  
    5 L) d; z! y; v
  6.         while (maxWeight < n) {  
    \" \3 u6 \# t* {! M9 ~& W5 O
  7.             maxWeight = maxWeight * 3 + 1;  
    ' B% ~! b; I, e, T+ j
  8.             minCnt++;  * A  Y8 I' L5 _
  9.         }  % J' n8 ^' L% q4 w5 {\" e# E
  10.         System.out.println(minCnt);  
    4 K) z3 m6 c7 E# e+ _( F/ J
  11.     }  , `4 Z( |; f8 |1 E  O* Y, U
  12. }
    : d2 L  [4 ^: R; R3 A$ B
复制代码
题解' K$ ~* R# p/ F5 I- {
如果我们可以控制的区间范围 是 [1, n] 最少砝码为x个
2 D) A0 k1 C( U1 q1 T. }此时我们想扩大区间范围就只可以增加砝码
6 T5 Y1 _  [& z+ o假设增加的砝码重量为 k
( D8 r4 k+ }6 O0 V% D因为我们可以控制 [1, n] 的重量, 而且因为可以把砝码放在左右两把, 想当于我们可以进行加减操作/ {; g1 ~, r% J$ ^& z) ^8 D
所以新增砝码后, 我们又可以控制[k - n, k + n] 的区间范围了
. B% [$ C( o9 ~
& p' D) ~. p. S让这个新增的控制范围 与 我们原来的可以控制的范围相邻, 就得到了最大的可控范围
6 p  y" u+ D! V6 h, P; q, ^# o- f2 e: T0 h9 D
另 n + 1 = k - n k = 2n + 1
$ P9 L4 c# l  ]3 m) C" @2 W那么x + 1可以控制的最范围就是[1, 3n + 1]
# k- r' J0 p3 C+ V  ~4 p0 a) b1 V, w  j! R

2 \/ s9 }6 _3 y; V+ j
& L) M, _' v1 o6 h' Y
分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

最新评论

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-4-29 12:48 , Processed in 0.261736 second(s), 47 queries .

回顶部