算法——俄式乘法

Crq
Crq
Crq
1161
文章
0
评论
2024年10月18日20:18:20
评论
17 360字阅读1分12秒

两个正整数相乘的非主流算法

假设n和m是两个正整数,计算n*m,现在用n的输入作为实例规模的度量标准。

假设n是偶数,一个规模为原来一半的实例必须要对n/2进行处理,n*m=n/2 * 2m

假设n是奇数,只需要对公式进行简单调整,n*m=(n-1)/2 * 2m

并且使用1*m=m作为终止条件。

我们写下来一个例子就会发现:所有当前n的值是奇数时候,只需要相加对应的m值即可得到n*m的乘积。

例如:50*65=25*130=12*260 (+130)=6*520=3*1040=1*2080===2080+1040+130=3250

下面我们就开始下代码实现:
#include
using namespace std;

int main()
{
int n,m,mul=0;
cin>>n>>m;
for(int i=n>>1;i>=1;i=i>>1)
{
m=m

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年10月18日20:18:20
  • 转载请注明:https://www.cncrq.com/11250.html
DevOps监控微服务的五原则 Linux教程

DevOps监控微服务的五原则

监控是微服务控制系统的关键部分,你的软件越复杂,那么你就越难了解其性能及问题排障。鉴于软件交付发生的巨大改变,监控系统同样需要进行彻底的改造,以便在微服务环境下表现更好。
Linux 中重置数据库的 root 密码的技巧 Linux教程

Linux 中重置数据库的 root 密码的技巧

其中一项是设置数据库 root 帐户的密码 - 你必须保持私密,并仅在绝对需要时使用。如果你忘记了密码或需要重置密码(例如,当数据库管理员换人或被裁员!),这篇文章会派上用场。
总说Linux,到底什么是Linux? Linux教程

总说Linux,到底什么是Linux?

Linux是最知名和最常用的开源操作系统。作为一个操作系统,Linux是一个软件,位于计算机上的所有其他软件的下面,从这些程序接收请求并将这些请求转发到计算机硬件。
Ubuntu12.04嵌入式交叉编译环境搭建 Linux教程

Ubuntu12.04嵌入式交叉编译环境搭建

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: