Java 递归解决 "仅仅能两数相乘的计算器计算x^y" 问题
/*** 求一个数的乘方* 求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); } }

posted on 2017-07-18 21:57 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/7203112.html

Java 递归解决 quot;仅仅能两数相乘的计算器计算x^yquot; 问题相关推荐

  1. java break递归_如何利用Java递归解决“九连环”公式

    在之前有写到过一点点有关递归的东西,然后想到小时候自己玩的一个玩具--九连环.小时候自己曾经一边玩一边用笔记下来解开这个东西的公式,那是十几年前的事情了.前两天突然想起来,九连环的基本操作就是一个递归 ...

  2. java 递归10 28_如何利用Java递归解决“九连环”公式

    在之前有写到过一点点有关递归的东西点击打开链接,然后想到小时候自己玩的一个玩具--九连环.小时候自己曾经一边玩一边用笔记下来解开这个东西的公式,那是十几年前的事情了.前两天突然想起来,九连环的基本操作 ...

  3. 在Java中实现两数相乘

    要实现两数相乘算总额:input1.value() * input2.value() 如果直接获取到两个input值相乘,那么结果就有一点点小偏差,是因为精度缺失 $("#totalSum& ...

  4. Java 两数相乘保留两位小数

    //两数相乘保留两位小数public static String multiply(String num1, String num2) {BigDecimal b1 = new BigDecimal( ...

  5. js小数/浮点数 两数相乘,相除精度问题

    精度问题 浮点数两数相乘floatingMultiply(arg1, arg2) {if (!((arg1 || arg1 === 0) && (arg2 || arg2 === 0) ...

  6. 算法题十一 之 两数相乘

    题目 给定两个只包含0 - 9 的字符串,输出两个字符串相乘的结果. 要求: 不可以直接把输入的字符串转化成整数 思路 因为不可以直接把输入字符串转化成正数,所以我们只能用代码实现一个位一位之间的相乘 ...

  7. Java递归求斐波那契数求猴子吃桃

    递归求斐波那契数 斐波那契数是指前两位是1,后面的数依次是其前两位的和.即1,1,2,3,5,8-给你一个 n,求其值是多少 public class recursionExercise01{//定义 ...

  8. 两数相乘:但是不用*号。如何不用*符号的两数相乘

    文章目录 前言 一.题目描述 二.思路和代码 方法一.递归 方法二.快速乘(俄罗斯农民乘法) 前言 今日力扣算题遇到一个有趣的题目         如何不用 * 运算符,实现两正数相乘         ...

  9. python两数相乘代码_Python 实现大整数乘法算法的示例代码

    我们平时接触的长乘法,按位相乘,是一种时间复杂度为 O(n ^ 2) 的算法.今天,我们来介绍一种时间复杂度为 O (n ^ log 3) 的大整数乘法(log 表示以 2 为底的对数). 介绍原理 ...

最新文章

  1. 安装Debian 7.8 过程,以及该系统的配置过程
  2. 数据中心管理人员预计2018年发生的变化
  3. 【速看,双100%】剑指 Offer 14- I. 剪绳子 I
  4. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 1
  5. 企业正确进行数字化转型的7个秘诀
  6. Python精通-Python函数使用
  7. python自动数据结构_Python 数据结构
  8. 消息队列技术终结者(三)—ActiveMQ的特性及优势
  9. python3中浮点数float的四舍五入,round跟decimal区别
  10. c语言编程怎么记,新手如何学习c语言
  11. Kong 开源的服务网格Kuma爬过了K8S这座大山
  12. 备考H12-221 HCIP-Routing Switching-IERS的一些笔记
  13. 在HTML中 标记hn的作用,html标记_1.ppt
  14. 医院管理信息系统 HIS EMR PACS LIS
  15. python 银行_python 银行系统
  16. arduino与蓝牙模块
  17. java小球左右_java小球碰撞窗体边缘来回反弹的代码
  18. mac brew 测速 软件_最好用的网络测速工具speedtest
  19. CNC跟NC区别详解
  20. Echarts开发地图迁徙动态图(geo-lines)

热门文章

  1. Javascript中函数中定义变量无var
  2. 网站内部优化的4个细节小技巧
  3. java concat和 的区别,RxJava2 merge和concat 区别
  4. 指针 是否相同_c专题之指针---野指针和空指针解析
  5. 计算机音乐数字乐谱核爆神曲,原神乐谱核爆神曲
  6. java连接kafka api_Kafka-JavaAPI(Producer And Consumer)
  7. 趣谈网络协议笔记-二(第十二讲)
  8. SIMD指令集——一条指令操作多个数,SSE,AVX都是,例如:乘累加,Shuffle等
  9. php 扩展的so文件位置
  10. Codeforces 911F Tree Destruction