QQ登录

只需要一步,快速开始

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

最少砝码 Java解决

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-29 16:40 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题描述】
- g6 {: n. \: Q! U3 a& d你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意小于等于 N 的正整数重量。
* G: I6 Y; l% P- y那么这套砝码最少需要包含多少个砝码?
3 P% E3 f" b6 Q" Z$ E5 @4 O! I注意砝码可以放在天平两边。
" I0 }  C4 _# Z$ t4 k" c
0 F: n$ K6 i+ k" E! \2 |/ p4 |; g【输入格式】$ o* c. v* w0 i; f! O
输入包含一个正整数 N。5 w: h$ p1 s' G7 A5 o$ T* \- W
9 }' w, W% C+ k
【输出格式】' A5 m* A2 @4 q
输出一个整数代表答案。
! e4 `( c. {' N3 L! ~$ ]! ^, g) e& I+ p; `; T6 K( Y" O* |& g
【样例输入】1 X9 ~; f+ p4 y2 L4 W7 [' C. N/ g
7' h, y4 B8 H4 O* ?( D6 G
) E9 b+ y. \1 G- v0 u7 J+ @
【样例输出】
$ p& l5 m2 _7 G- N. g, A3! t1 {) x) l% }2 e9 G; H

3 l. m. p7 d" b( E【样例说明】" l$ Y0 N9 L+ P, l
3 个砝码重量是 1、4、6,可以称出 1 至 7 的所有重量。
9 \6 F. X" e7 l( K5 V1 = 1;
" ^0 V' [2 u. \  [" v/ [( ?5 l2 = 6 − 4 (天平一边放 6,另一边放 4);
& ^6 \4 k% N- l! p6 Y2 {3 = 4 − 1;
# A6 u% c5 e: @4 s4 = 4;* C+ b6 ]$ y+ ~; b" k4 k) k6 z7 D4 N
5 = 6 − 1;
+ i3 g( Z/ c* h" w6 = 6;
* Q, ?! J! ^0 ~7 x# y8 Q; h7 = 1 + 6;
8 \3 s& ?$ m5 n0 F$ Z少于 3 个砝码不可能称出 1 至 7 的所有重量。
  1. import java.util.Scanner;  * f6 a- T\" L: T' X& Y6 b
  2. public class Main {  
      P, M3 j/ c- M- m
  3.     public static void main(String[] args) {  
    5 D  x/ t( w% c3 C, @+ U( I  L
  4.         int n = new Scanner(System.in).nextInt();    / j9 B( L5 M' C  T; T2 L5 H2 u
  5.         int maxWeight = 1, minCnt = 1;  * A3 r; t! W% ?% p1 n8 c
  6.         while (maxWeight < n) {  & f5 P2 q7 u* ?7 n. H
  7.             maxWeight = maxWeight * 3 + 1;  4 W4 l' G. ^0 ]\" [9 q
  8.             minCnt++;  / H* T3 A  G, W9 O0 e/ E
  9.         }  , z! c/ u7 {/ {4 O2 }
  10.         System.out.println(minCnt);  
    $ Q1 o7 v6 d% K/ [) g
  11.     }  
    ! i# ^. `6 y1 O2 B6 b
  12. }
      x4 |. T  R' m9 q9 Y& E4 z
复制代码
题解1 g( n) A0 Y" l$ @$ w& z
如果我们可以控制的区间范围 是 [1, n] 最少砝码为x个8 `+ ?4 j: O: J5 V- S) I- m
此时我们想扩大区间范围就只可以增加砝码. k5 G; s8 I6 _3 D! L# V* B3 i# e
假设增加的砝码重量为 k
$ {' K# Y, J7 N) |0 U4 E, \- y; y% H因为我们可以控制 [1, n] 的重量, 而且因为可以把砝码放在左右两把, 想当于我们可以进行加减操作
9 X8 p- j# A" p# @& s' S" Q所以新增砝码后, 我们又可以控制[k - n, k + n] 的区间范围了
  q+ y( E& j& C% t+ y5 K, d% y' ]" O- C
# h0 F& ?, u; `! U. z让这个新增的控制范围 与 我们原来的可以控制的范围相邻, 就得到了最大的可控范围
- `- a! d7 X: m3 _# B3 Q
) E% t( e; D1 {另 n + 1 = k - n k = 2n + 18 T' {% D+ s- M- @# O' k* g( X
那么x + 1可以控制的最范围就是[1, 3n + 1]
. g1 |+ `4 n# {
) N' e$ }5 p6 Z3 a( a# _; y+ D5 Y, ?' j* F2 a

; @5 D$ e1 I' ~: c6 r
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-8-31 07:47 , Processed in 3.696048 second(s), 50 queries .

回顶部