用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81
则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。

本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
例如:
用户输入:
5
程序输出:
9-3-1
用户输入:
19
程序输出:
27-9+1

要求程序输出的组合总是大数在前小数在后。
可以假设用户的输入的数字符合范围1~121。

// 天平称重,递归解法
public class A
{// 把s中的符号取反(+变-,-变+)static String reve(String s){s = s.replace('-','#');s = s.replace('+','-');s = s.replace('#','+');return "-" + s;}static String f(int x){int a = 1;while(a<x) a *= 3;if(a==x) return "" + a;if(x<=a/2) return a/3 + "+" + f(x-a/3);return a + reve(f(a-x));}public static void main(String[] args){for(int i=1; i<100; i++){System.out.println(i + ": " + f(i));}}
}

转载于:https://www.cnblogs.com/jizhidexiaobai/p/8594300.html

天平称重【递归解法】相关推荐

  1. 小球称重的解法整合 N个小球有一个坏球,最少几次能找出坏球

    小球称重的解法整合 N个小球有一个坏球,最少几次能找出坏球     最近在看小球称重的问题,之前只记住了公式,最近回过来看,发现知乎上多了一些优质答案,遂记录一下. 现附上学习地址 先说结论, N 个 ...

  2. 小单刷题笔记之天平称重 (巧用进制)

    题目: 用天平称重时,我们希望尽可能少的砝码组合称出尽可能多的重量,如果有无限个砝码,但它们的重量是1,3,9,27..等三的指数幂,神奇的是用它们组合可以称出任意的重量.本题要求实现,用户给出重量, ...

  3. 蓝桥杯数学题:天平称重:巧用三进制。基于python3.9的原创代码

    用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量.如果有无限个砝码,但它们的重量分别是1,3,9,27,81,--等3的指数幂神奇之处在于用它们的组合可以称出任意整数重量(砝码允许放在左右 ...

  4. 经典算法之天平称重问题(进制解法)

    问题描述: 已知所有砝码重量均为3的倍数,且所有重量的砝码有且只有一个 要求输出重量1到n的所有物品的称重方式 解题思路: 用字符串拼接结果 三进制的返回值为0 1 2 返回值为0则表示该权重不取 返 ...

  5. Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出

    1. 题目 "在12个小球里有一个次品,重量与其他11个球不同.用一个没有砝码的天平,称3次,保证找到那个次品,并且区分出次品是轻还是重呢?" 这个问题看似简单,做起来还真不容易. ...

  6. 个人小项目:现有12个小球和一个天平,小球中有一个重量与其它的不同,称重几次能将这个小球找出来

    个人小项目:现有12个小球和一个天平,小球中有一个重量与其它的不同,称重几次能将这个小球找出来 写这个小项目的心思起源于一个知乎问题:假设现在有12个小球,其中一个重量与其他的不同,至少称多少次可以称 ...

  7. 信息熵--硬币称重问题-详解

    在补<信息熵基础>,此书理论清晰,后面还有一堆要命的习题,加深理解和应用,实乃佳作.其中一些题目对我来说确实不易,记录巩固一下,也和大家交流一下. 顺便补一下,一份完整的参考资料或者书籍, ...

  8. 十二个小球称重问题及其Python实现

    一.问题描述   在12个外观完全相同的小球中,有一个与其它球重量不同.如何只用一架天平找到这个球并判断它比其它球轻还是重?最少需要称几次?39个球呢? 二.问题分析   这是一个很经典的信息论问题, ...

  9. 7个相同小球4个不同盒子_如何用天平称三次找出12个外观相同小球中仅有的一个次品?次品质量与正品不同。...

    刷知乎看到这个问题: 12个相同的小球其中有一个质量不同,一个天平,称三次找出这个小球,请问怎么称?​www.zhihu.com 为了给出通俗易理解的答案,写了这个文章,祝题主有情人终成眷属! 先祭出 ...

最新文章

  1. Kettle性能调优汇总
  2. JavaScript TreeView
  3. React Native 的图片加载方式
  4. hadoop 配置项的调优
  5. DRF框架—序列化器中的字段校验规则
  6. mysql数据库访问问题吗_#MySQL数据库无法远程访问的问题
  7. 柒上支付个人免签支付系统源码
  8. 贷款买车后,有多少人后悔了?
  9. Dubbo使用Sentinel来对服务进行降级与限流
  10. delphi formshow 刷新_OPPO K7x部分配置和外观公布90Hz刷新率11·4发布
  11. 传统模式下安装linux,在将引导顺序更改为传统模式或在传统模式下安装操作系统时找不到引导设备...
  12. 【渝粤题库】广东开放大学物业管理基本制度与政策 形成性考核
  13. vue全家桶指的是哪些?
  14. laravel框架的whereIn条件或者where条件里面的in条件怎么写
  15. Arduino 水滴检测
  16. mysql里面除号写法_MySQL常见函数 - osc_mgt0rm0m的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 网页前端(HTML)
  18. leetcode1104. Path In Zigzag Labelled Binary Tree
  19. 2022网络安全技术及应用复习重点
  20. 树莓派吃派(android Pie)指南

热门文章

  1. unity3d 自动变化大小_一种可扩展的Unity3d资源检查方式
  2. 上传到服务器gd不支持,安装dedecms出现GD不支持。我的php5.5的。怎么解决?
  3. gis中开始编辑之后显示空间参考_空间参考—帮助 | ArcGIS Desktop
  4. python水平_python水平
  5. c语言 通过sendarp 实现mac,C#通过SendARP()获取WinCE设备的Mac网卡物理地址
  6. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task2数据分析
  7. Windows 10配置VS Code C++环境(超详细,面向小白以及大佬们)
  8. The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 XKC's basketball team
  9. UIViewController详解
  10. linux监测指定进程的CPU及物理内存消耗情况(c程序)