Java实现俄式乘法
JAVA 实现 乘法
2023-09-14 08:58:13 时间
1 问题描述
首先,了解一下何为俄式乘法?此处,借用《算法设计与分析基础》第三版上一段文字介绍:
2 解决方案
package com.liuzhen.chapter4;
public class RussianPeasant {
//方法1:递归求解
public void recursionRussian(int m,int n,int result){
if(m < 1)
return;
if(m == 1)
System.out.println("使用递归求取m*n结果: "+(result+n));
if(m % 2 == 0){
m = m/2;
n = n*2;
recursionRussian(m,n,result);
}
else{
result += n;
m = (m-1)/2;
n = n*2;
recursionRussian(m,n,result);
}
}
//方法2:迭代求解
public int iterationRussian(int m,int n){
int result = 0;
while(m > 0){
if(m % 2 == 0){
m = m/2;
n = n*2;
}
else{
result += n;
m = (m-1)/2;
n = n*2;
}
}
return result;
}
public static void main(String[] args){
RussianPeasant test = new RussianPeasant();
test.recursionRussian(50, 65, 0);
System.out.println("使用迭代求取m*n结果:"+test.iterationRussian(50, 65));
}
}
运行结果:
使用递归求取m*n结果: 3250
使用迭代求取m*n结果:3250
相关文章
- java 登录 qq_Java实现QQ登录
- java redis锁_Java中Redis锁的实现[通俗易懂]
- Java实现Excel导入和导出,看这一篇就够了(珍藏版)
- 自己实现简单java缓存类文件_java怎么把数据存到缓存中
- Java 实现的断点下载详解编程语言
- java图片灰度化原理与实现详解编程语言
- Java实现Zip压缩目录中的所有文件详解编程语言
- MySQL封装之Java实现(mysql封装java)
- 数据库Java实现Oracle数据库监控(java监听oracle)
- Linux上部署Java项目实践指南(linux部署java项目)
- 版本配置Linux系统的默认Java版本(linux默认java)
- 锁Redis Java实现锁机制及过期处理(redisjava过期)
- 机制Redis Java中的过期机制研究(redisjava过期)
- 实现Redis中Java键值对的过期管理(redisjava过期)
- Java实现Redis数据过期策略(redisjava过期)
- 实现【Redis与Java实现过期处理】(redisjava过期)
- 机制使用Redis Java实现过期机制(redisjava过期)
- Java程序在Linux系统中实现命令操作(java运行linux命令)
- Linux测试搭配Java快速实现稳定性验证(linux测试java)
- java汉诺塔Hanoi递归、非递归(仿系统递归)和非递归规律实现代码
- java大数乘法的简单实现浮点数乘法运算
- java实现数据库主键生成示例