兩個正整數相乘的非主流演算法
假設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 <iostream><br>
using namespace std;</iostream>
int main()
{
int n,m,mul=0;
cin>>n>>m;
for(int i=n>>1;i>=1;i=i>>1)
{
m=m
以上是演算法——俄式乘法的詳細內容。更多資訊請關注PHP中文網其他相關文章!