QQ登录

只需要一步,快速开始

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

最少砝码 Java解决

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

1176

主题

4

听众

2888

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-29 16:40 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题描述】
+ r8 `4 v; x. {+ q, O7 d5 J你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意小于等于 N 的正整数重量。
' R  R) n+ d& ]. x- A+ x5 S/ q那么这套砝码最少需要包含多少个砝码?
$ \- D8 S: E( ~0 |8 x) q8 L+ O( X9 U. e注意砝码可以放在天平两边。
$ Q( D" `+ ^. X! u! \1 O. r
2 ]( L6 w' K" T" r$ W【输入格式】
: e$ N' V8 C" j" z6 v' z, C' E输入包含一个正整数 N。' y7 ], K8 E) L* J) J
  s+ J% P" w) \/ D
【输出格式】
1 }' t4 n2 p* A$ W/ _6 u* ~+ |3 D输出一个整数代表答案。
1 c2 A$ C$ E" B2 }$ n9 V' u8 B
% D& ~% T8 i& h1 t8 W0 C% b+ `9 N【样例输入】
% h! K# O' G; y& ^( O1 O" ^7: }7 c; X$ U0 w5 N( D9 ~

2 p( u; J* m( T2 y【样例输出】
6 u8 }2 F) l# P9 @; O$ a36 U8 s+ \/ y. E. d; k( v) t; ~2 U

! L) r. w# o9 r" U; v. [% I【样例说明】: Q4 T; T! [) i9 R5 a* I
3 个砝码重量是 1、4、6,可以称出 1 至 7 的所有重量。
. s; Z% z5 ^5 x+ K+ a1 = 1;
4 p' l& F# P1 Y7 l7 g2 = 6 − 4 (天平一边放 6,另一边放 4);
" j: Q$ ~/ U* C. u' l3 = 4 − 1;1 p0 Q, N# C; R' P! ~" X
4 = 4;
5 R8 {1 [3 V3 K& N5 = 6 − 1;; Z9 ^- \3 @6 l5 m+ l
6 = 6;
; ~4 d0 t  K* ]  C. S" I7 = 1 + 6;
; R% P# t! B) c少于 3 个砝码不可能称出 1 至 7 的所有重量。
  1. import java.util.Scanner;  
    ! L' w( e5 O8 U) j+ R
  2. public class Main {  
    - q7 T  N( Y$ y# b' B+ _; X+ B
  3.     public static void main(String[] args) {  
    $ s, y4 ?& c1 f4 S
  4.         int n = new Scanner(System.in).nextInt();   
    , h8 ?# I3 a$ U
  5.         int maxWeight = 1, minCnt = 1;  
    6 B% w/ `. k2 w\" M
  6.         while (maxWeight < n) {  ( V3 T- _; P# u/ x) E
  7.             maxWeight = maxWeight * 3 + 1;  
    2 r% D, ?3 Q8 S* c+ p2 s, N! ^
  8.             minCnt++;  
      z1 B3 [. H) {
  9.         }  
    0 E; b. J; S0 n- ^2 O& Q; Y\" D
  10.         System.out.println(minCnt);  8 C' S# a\" E0 e, S! I: G9 u9 y1 a
  11.     }  1 M: _) G8 _: Z0 ^& p4 F& O
  12. }6 p& t, u+ U, T9 X0 v1 D6 b
复制代码
题解
/ c3 a. k+ F" G1 V如果我们可以控制的区间范围 是 [1, n] 最少砝码为x个
, ~% J- T3 k0 ^2 o* y此时我们想扩大区间范围就只可以增加砝码
  E" p( f& F' I2 a9 T9 A假设增加的砝码重量为 k7 b, h2 [) W3 N, m
因为我们可以控制 [1, n] 的重量, 而且因为可以把砝码放在左右两把, 想当于我们可以进行加减操作3 d$ F" p$ Q4 m. R$ g9 w
所以新增砝码后, 我们又可以控制[k - n, k + n] 的区间范围了% f; X. l# ^& i, z* @  y5 p. \  K3 V
6 b& ^/ H# T3 N3 |) K# n
让这个新增的控制范围 与 我们原来的可以控制的范围相邻, 就得到了最大的可控范围
7 E8 Q9 K% R5 ]( @
/ R6 y3 v7 F4 E0 ~0 W另 n + 1 = k - n k = 2n + 1+ g4 _5 R5 x9 E* k% @
那么x + 1可以控制的最范围就是[1, 3n + 1]+ B" O+ H. u' L7 _! K/ v& G$ B

) R; _3 }  Q6 I$ L1 Z6 y$ ~* W( ~4 o% W. j6 e- i, @
4 g! U7 y, k2 I; C, t
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, 2025-11-8 05:15 , Processed in 0.434615 second(s), 50 queries .

回顶部