QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2121|回复: 0
打印 上一主题 下一主题

最少砝码 Java解决

[复制链接]
字体大小: 正常 放大

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-29 16:40 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题描述】
4 |; |$ _* |2 r6 |你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意小于等于 N 的正整数重量。
$ z3 r' H) b6 f0 k) K6 N那么这套砝码最少需要包含多少个砝码?
! d: W  }6 n4 _- Y+ j注意砝码可以放在天平两边。8 ~: ~% p) V& }, {, f; O0 w& t( G! e

1 G  `+ Q8 I7 z: v9 e$ z: X; J【输入格式】0 Y5 k8 p3 s# D: f
输入包含一个正整数 N。! e* I4 h6 I. Y- d8 ]
" e+ b8 Z) e) B
【输出格式】
- X8 N$ s+ Y, ?$ o9 n) h; W输出一个整数代表答案。. q/ D- |' U+ }# ^, @; S0 L
8 y8 b6 m7 k8 W) n0 i
【样例输入】- \/ T0 E" A9 s' ]. Y1 v. V
7
/ x  M& M/ c. o: u) O" Z# r- b
5 {* U% t7 y1 i$ A【样例输出】
6 k) [) z3 |6 r: F# a3- t9 i. \- Y. v) c2 A) @0 P# Z

' x) {% m( h  l+ @, |【样例说明】7 m5 e  w; t; D" b7 a: u8 ?6 \
3 个砝码重量是 1、4、6,可以称出 1 至 7 的所有重量。
: Y( s: m6 W# g1 = 1;
. T! e, `- d7 Y6 H) z3 r2 = 6 − 4 (天平一边放 6,另一边放 4);2 F/ f& G4 q8 m. M
3 = 4 − 1;# j- z! v1 V5 g5 m) w: ]8 l
4 = 4;; W, F1 T$ G8 i& }
5 = 6 − 1;# T: G0 y8 v% l& X& U& p
6 = 6;4 n6 G4 x" p- d5 ~4 Y9 j
7 = 1 + 6;
+ f2 n  \/ P! ~: ]. i少于 3 个砝码不可能称出 1 至 7 的所有重量。
  1. import java.util.Scanner;  + t( ]( Z& @3 W. S) [. X! s& w1 ~3 D
  2. public class Main {  
    . @; B! R- s3 u& X
  3.     public static void main(String[] args) {  % a- G; A, Q) f/ `1 _
  4.         int n = new Scanner(System.in).nextInt();   
      W; X+ J& D$ `  a/ [
  5.         int maxWeight = 1, minCnt = 1;  , j, a8 C* Z( E5 N) F. E, A
  6.         while (maxWeight < n) {  
    ! h% j, X* F0 J6 y
  7.             maxWeight = maxWeight * 3 + 1;  
    9 B: T- g) {! W6 o9 d
  8.             minCnt++;    A5 {2 S- e  l% t) n
  9.         }  ) z* I5 e2 T. R: y# b
  10.         System.out.println(minCnt);  
    ) W/ w% _) [7 N( O: i\" A1 Q
  11.     }  
    ' ^9 g; T) [: X% f* i) T
  12. }
    2 l; |/ @* P% x8 e# h% B
复制代码
题解4 @  U' y8 c+ D: ^( P; q7 |
如果我们可以控制的区间范围 是 [1, n] 最少砝码为x个& |( B5 F+ R! h3 _# M7 k1 V9 }
此时我们想扩大区间范围就只可以增加砝码" q1 J) h% o; `- N' m7 |
假设增加的砝码重量为 k
7 N- z, l2 u" g8 q因为我们可以控制 [1, n] 的重量, 而且因为可以把砝码放在左右两把, 想当于我们可以进行加减操作
+ t# v4 b/ P" s: G9 A0 \/ c  s: H所以新增砝码后, 我们又可以控制[k - n, k + n] 的区间范围了
* N% S. m" Y. p0 f$ W3 G
' N% l+ {* M. }; d+ ]! I% D: _- e让这个新增的控制范围 与 我们原来的可以控制的范围相邻, 就得到了最大的可控范围) p" G. {5 j# g$ X" j- g6 A

& |& G1 z- j) k1 o- j; `8 a$ B: @: [另 n + 1 = k - n k = 2n + 1
' \. R9 ~4 V. f4 E) x6 F3 g9 P那么x + 1可以控制的最范围就是[1, 3n + 1]- P- K9 ?- m2 `, Z5 M
2 z' y7 a% z+ f2 V

% E! o. N" i8 \( l1 f
. j( V! ]7 X; d, @6 R& e1 s6 ?
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-5-25 10:55 , Processed in 0.411765 second(s), 56 queries .

回顶部