Java 递归解决 quot;仅仅能两数相乘的计算器计算x^yquot; 问题
/*** 求一个数的乘方* 求x^y,y是一个正整数。
设计算器仅仅能计算两数相乘,不能一次计算n个数相乘。
* 知:2^5=(2^2)^2*2; 2^6=(2^2)^3=((4)^2)*4; 2^8=(2^2)^4= (4^2)^2= 16^2 * 得到规律:x^y= (x^2)^(y/2),定义a=x^2,b=y/2, 则得到形如: x^y= a^b; * y假设是奇数,则分解的最后还要再乘以a(如上面2^6分解成4^3时):x^y=a^b*x. * * 用递归来解:那么每次x都传入一个新的值。即是a。y值倍减,即是b * * @author stone * @date 2015-7-2 上午11:31:53 */ public class Power { private static long pow(long x, long y) { if (x == 0 || x == 1) { return x; } long tx = 0; long ty = 0; if (y > 1) { ty = y / 2; tx = x * x; System.out.println(tx); if (y % 2 == 0) { return pow(tx, ty); } else { return pow(tx, ty) * x; } } else { return x; } } public static void main(String[] args) { long result = pow(2, 10); System.out.println(result); } }
转载于:https://www.cnblogs.com/mthoutai/p/7203112.html
Java 递归解决 quot;仅仅能两数相乘的计算器计算x^yquot; 问题相关推荐
- java break递归_如何利用Java递归解决“九连环”公式
在之前有写到过一点点有关递归的东西,然后想到小时候自己玩的一个玩具--九连环.小时候自己曾经一边玩一边用笔记下来解开这个东西的公式,那是十几年前的事情了.前两天突然想起来,九连环的基本操作就是一个递归 ...
- java 递归10 28_如何利用Java递归解决“九连环”公式
在之前有写到过一点点有关递归的东西点击打开链接,然后想到小时候自己玩的一个玩具--九连环.小时候自己曾经一边玩一边用笔记下来解开这个东西的公式,那是十几年前的事情了.前两天突然想起来,九连环的基本操作 ...
- 在Java中实现两数相乘
要实现两数相乘算总额:input1.value() * input2.value() 如果直接获取到两个input值相乘,那么结果就有一点点小偏差,是因为精度缺失 $("#totalSum& ...
- Java 两数相乘保留两位小数
//两数相乘保留两位小数public static String multiply(String num1, String num2) {BigDecimal b1 = new BigDecimal( ...
- js小数/浮点数 两数相乘,相除精度问题
精度问题 浮点数两数相乘floatingMultiply(arg1, arg2) {if (!((arg1 || arg1 === 0) && (arg2 || arg2 === 0) ...
- 算法题十一 之 两数相乘
题目 给定两个只包含0 - 9 的字符串,输出两个字符串相乘的结果. 要求: 不可以直接把输入的字符串转化成整数 思路 因为不可以直接把输入字符串转化成正数,所以我们只能用代码实现一个位一位之间的相乘 ...
- Java递归求斐波那契数求猴子吃桃
递归求斐波那契数 斐波那契数是指前两位是1,后面的数依次是其前两位的和.即1,1,2,3,5,8-给你一个 n,求其值是多少 public class recursionExercise01{//定义 ...
- 两数相乘:但是不用*号。如何不用*符号的两数相乘
文章目录 前言 一.题目描述 二.思路和代码 方法一.递归 方法二.快速乘(俄罗斯农民乘法) 前言 今日力扣算题遇到一个有趣的题目 如何不用 * 运算符,实现两正数相乘 ...
- python两数相乘代码_Python 实现大整数乘法算法的示例代码
我们平时接触的长乘法,按位相乘,是一种时间复杂度为 O(n ^ 2) 的算法.今天,我们来介绍一种时间复杂度为 O (n ^ log 3) 的大整数乘法(log 表示以 2 为底的对数). 介绍原理 ...
最新文章
- 安装Debian 7.8 过程,以及该系统的配置过程
- 数据中心管理人员预计2018年发生的变化
- 【速看,双100%】剑指 Offer 14- I. 剪绳子 I
- ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 1
- 企业正确进行数字化转型的7个秘诀
- Python精通-Python函数使用
- python自动数据结构_Python 数据结构
- 消息队列技术终结者(三)—ActiveMQ的特性及优势
- python3中浮点数float的四舍五入,round跟decimal区别
- c语言编程怎么记,新手如何学习c语言
- Kong 开源的服务网格Kuma爬过了K8S这座大山
- 备考H12-221	HCIP-Routing Switching-IERS的一些笔记
- 在HTML中 标记hn的作用,html标记_1.ppt
- 医院管理信息系统 HIS EMR PACS LIS
- python 银行_python 银行系统
- arduino与蓝牙模块
- java小球左右_java小球碰撞窗体边缘来回反弹的代码
- mac brew 测速 软件_最好用的网络测速工具speedtest
- CNC跟NC区别详解
- Echarts开发地图迁徙动态图(geo-lines)
热门文章
- Javascript中函数中定义变量无var
- 网站内部优化的4个细节小技巧
- java concat和 的区别,RxJava2 merge和concat 区别
- 指针 是否相同_c专题之指针---野指针和空指针解析
- 计算机音乐数字乐谱核爆神曲,原神乐谱核爆神曲
- java连接kafka api_Kafka-JavaAPI(Producer And Consumer)
- 趣谈网络协议笔记-二(第十二讲)
- SIMD指令集——一条指令操作多个数,SSE,AVX都是,例如:乘累加,Shuffle等
- php 扩展的so文件位置
- Codeforces 911F Tree Destruction