【蓝桥java】进制与整除之天平秤重
题目:
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81
则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
例如:
用户输入:
5
程序输出:
9-3-1
用户输入:
19
程序输出:
27-9+1要求程序输出的组合总是大数在前小数在后。
可以假设用户的输入的数字符合范围1~121。
方法一:
代码实现:
package cn.zzunit.jnvi;
/*** * @author tyrantForever*/
public class Project1 {//输入一个方程将其加号变为减号 减号变为加号public static void main(String[] args) {for(int i = 1; i < 10; i++) {System.out.println(findMethord(i));}}//输入的为需要将加减号对调的方程public static String reverse(String equation) {equation = equation.replace("+", "#");equation = equation.replace("-", "+");equation = equation.replace("#", "-");return equation;} public static String findMethord(int weight) {int counterWeight = 1;while(weight > counterWeight) {counterWeight *= 3;}if (weight == counterWeight) {//注意:此处有一个int转成String 的方法return counterWeight + "";}if(weight <= counterWeight / 2) {//问题:在这里怎么实现显示出counterWeigh的值return Integer.toString(counterWeight / 3 ) + "+" + findMethord(weight - counterWeight / 3);}else {return Integer.toString(counterWeight) + "-" + reverse(findMethord(counterWeight - weight)); }}}
注:
(1)将int类型数据转为String类型的数据可以直接再int类型的数据之后拼接一个空串
(2)reverse函数的目的是实现一个方程中的“+”变“-” “-”变“+” 但是不能直接变而是借助了一个中间变量“#”,否则先将+ 变成了-然后又将- 变成了 + 最后全是+
(3)注意replace()和replaceAll()的区别 replace不支持正则表达式,replaceAll支持
方法二:
使用进制的方法
思路:
砝码都是3的倍数,类似于将一个数转换成三进制,但是不同的是三进制的余数为:0、1、2,但是本题将余数改为:-1、0、1
所以在使用除三取余的方法时规则出现了改变
如:使用除三取余的方法分解5
注:将 2改为-1 ,方法就是将商商大一点自然余数就是负的
代码实现:
package cn.zzunit.jnvi;
/*** * @author tyrantForever**/public class Project1_2 {public static void main(String[] args) {for(int i = 1; i < 10; i++) {System.out.println( i + " = " + findMethord(i));}}public static String findMethord(int weight) {//代表权重int qrvs = 1;//代表商int uh = weight;//代表余数int yuuu = 1;//公式的字符串String formula = "";while(uh > 0) {yuuu = uh % 3;if(yuuu == 1) {formula = "+" + qrvs + formula;}if(yuuu == 2) {uh = uh + 1;formula = "-" + qrvs + formula;}uh = uh / 3;qrvs *= 3;}formula = formula.substring(1);return formula;}}
相关文章:

分享一个C#使用AT指令控制语音猫的例子
阅读全文:http://www.cckan.net/forum.php?modviewthread&tid61 先来说说 最近公司让开发一个语音猫充值的软件,就是拨打10086(虚拟)进行话费充值操作,虚拟流程如下; 1.先拨通10086 2.按1进行话费充值…

个人银行账户管理程序
这个程序是一个银行账户管理的程序,是用C来实现程序功能的,该程序包含六个文件,其中有date.h头文件 是日期类的头文件,date.cpp是日期类的实现文件,accumulator.h是按日将数值累加的accumulator类的头文件,…

两个关于水花的测试。
海面上的水花的特效,水花是在浪尖处发射出来的,目前还没有让发射参数自动化的方法,都是表达式。一旦改变浪的性质,发射的粒子就要重新写动态了。 Splash on the ocean emitted from the crisp faces on top of the wave, the whit…

泛型在三层中的应用
一说到三层架构,我想大家都了解,这里就简单说下,三层架构一般包含:UI层、DAL层、BLL层,其中每层由Model实体类来传递,所以Model也算是三层架构之一了,例外为了数据库的迁移或者更OO点࿰…

【蓝桥java】进制与整除之尼姆堆
题目: 有3堆硬币,分别是3,4,5 二人轮流取硬币。 每人每次只能从某一堆上取任意数量。 不能弃权。 取到最后一枚硬币的为赢家。 求先取硬币一方有无必胜的招法。 在提供代买前做几条补充: (1)这里有一个不是很好理解的…

RSA遭骇 Token 换?不换?
RSA SecurID Token召回更换的动作仍然持续进行中,根据外电报导,美国有些企业已经要求更换Token,如花旗集团、美国银行、富国银行、摩根大通、澳盛银行、澳洲西太平洋银行。于此同时,一些竞争供应商也动作频频,例如Safe…

二叉树的镜像(数组,前后 遍历重建二叉树)
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。输入描述: 二叉树的镜像定义:源二叉树 8/ \6 10/ \ / \ 5 7 9 11镜像二叉树8/ \10 6/ \ / \11 9 7 5 #include <iostream> #include <cstdio> #include <cstdlib> #in…

tp5实现Redis的简单使用
方法1: Controller <?php namespace app\index\controller;use think\Controller; use think\session\driver\Redis;class Index extends Controller {public function index(){$redis new Redis();if(!$redis->has(str)){var_dump($redis->set(str,this…

Linux下getsockopt/setsockopt 函数说明
【getsockopt/setsockopt系统调用】 功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项…

【蓝桥java】进制与整除之最大公约数 最小公倍数
补充: (1)欧几里得定理(辗转相除法):A和B的最大公约数 B和A%B 的最大公约数 (2)将两个数乘起来再除以最大公约数就是最小公倍数 package cn.zzunit.jnvi;/***寻找最大公约数* autho…

学习C#要养成的好习惯
1. 避免将多个类放在一个文件里面。2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。4. 一个方法的代码长度最好不要超过25行。5. 避免方法中有超过5个参…

3.1、final、finally、 finalize
final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。 finally 则是 Java 保证重点代码一…

Android模拟器学framework和driver之传感器篇1(linux sensor driver)
对于android模拟器开发环境的搭建这里我就不多说了,网上google下一大堆,还有就是android 模拟器的kernel使用的是goldfish的kernel,可以使用git得到源码,然后就可以编译了,大家还是可以参考罗老师的博客。。。 在这里我…

【java】Lombok的使用
介绍:lombok在编译entity文件时自动生成get set toString hashCode等方法,这样方法生成就不用写在代码里了,可以简化代码。 使用方法: 一、在pom文件里引入lombok的依赖 代码实现: <dependency><groupId&g…

自己开发开源jquery插件--给jquery.treeview加上checkbox
很多时候需要把树状的数据显示除来,比如分类,中国省份、城市信息,等,因此这方面的javascript插件也有很多.比如性能优异的jquery.treeview和国人开发的功能强大的zTree. 我最近在一个项目中用到了jquery.treeview,但是…

SQL Server 2000安装时不出现安装界面,进程中存在解决
在XP和Server 2003系统中安装SQL Server 2000过程中,点击安装后,一直不出现安装界面,查看进程中也有,一直无反应。 解决办法: 首先重新启动机器,或者任务管理器里面结束2个sql进程 1. 在 SQLServer 安装向导…

Apache2.4部署python3.6+django2.0项目
一、安装apache Apache是非常有名的web服务器软件,如果想让我们web项目运行几乎离不开它。 Apache官方网站:http://httpd.apache.org/ 根据自己的环境,选择相应的版本进行下载。apache 官网没有windows 64位版本,可以通过下面的链…

我是如何有效的避免测试漏测?
漏测,指在产品缺陷在测试过程中没有被发现(尤其是测试环境可以重现的缺陷),而是在版本发布后或者在用户使用后发现并反馈回来的缺陷。可以说,漏测的问题是测试管理者最头痛的问题。因为出现漏测,一来给客户…

总结是学习最好的方式(转)
总结是学习最好的方式 最近一直想总结来华为公司这3个多月自己有什么收获,但又想不明白自己收获了什么?说技术吧,也谈不上有多大的提高;说人际交流,也许还有些退步;说薪资存款吧,哎不谈了。想着…

【转载】JUnit各个注解的含义
转自:https://blog.csdn.net/weixin_38500014/article/details/84393775

silverlight、wpf中 dispatcher和timer区别
相同点:都是定时执行任务的计时器,都可以使用。 不同点:Timer运行在非UI 线程,如果Timer需要更新UI的时候,需要调用 Invoke或者 BeginInvoke DispatcherTimer运行在UI 线程,处理的 Dispatcher 队列中的计时…

web开发基础
web开发:所谓web开发就是基于浏览器服务器的开发下面将web开发基础知识作个总结:1.http协议:是建立在TCP协议上的,基于请求响应的模型2.http请求:面试题:说说get与post的区别a.传递数据量:get只能传递1kb以下的数据,post可以传递大数据b.安全性:get请求,如果携带参数,参数会直接…

让ubuntu下的eclipse支持GBK编码
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://leaze.blog.51cto.com/83088/195584今天,把windows下的工程导入到了Linux下eclipse中,由于以前的工程代码&#x…

Session,ViewState用法
Session,ViewState用法基本理论: session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重. 而viewstate由于只是将数据存入到页面隐藏控件里,不再占用服务器资源,因此, 我们可以将一些需要服务器"记住"的变量和对象保存到vi…

【HTML】记录自己丢人过程:文本换行缩进都不会
问题描述: html文本想实现换行和缩进,最后气到摔鼠标 换行 实现代码: <br> 直接在文本后加个换行标签即可 缩进 实现代码: style"text-indent: 2em;" 注意:这个属性放到p标签中或者div标签中都…

CentOS5.6系统下mysql5安装
我的系统是CentOS5.6 建议大家完全安装,以免安装时缺少相关的编译器等等。 一、安装mysql(mysql-5.1.50.tar.gz) # tar zxf mysql-5.1.50.tar.gz # cd mysql-5.1.50 #./configure --prefix/usr/local/mysql --sysconfdir/etc --localstated…

CentOS 6.9/7通过yum安装指定版本的JDK/Maven
说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql xxx可以知道全部文件的地方等等。 一、安装JDK(Oracle JDK 1.8) # wget --no-check-certificate --no-cookies --he…

2019牛客全国多校训练三 题解
A Gragh Games Unsolved. B Crazy Binary String 题解:水题,子序列只要统计0和1数量,取最小值然后乘2就是答案; 对于子串:先记录0和1 前缀和的差值,然后找差值相等的距离最远的两个位置即可; 参…

【硬件基础】有源蜂鸣器与无源蜂鸣器
辨别方法 外观: 无源蜂鸣器: 有源蜂鸣器: 注:可以看到底部有绿色电路板的是无源蜂鸣器,底部是黑胶的为有源蜂鸣器 万用表电阻档检测 无源蜂鸣器:发出咔、咔声的且电阻只有8Ω(或16Ω)。 有源…

hdu 1272 小希的迷宫
Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B…