我正在尋找一種方式(最好是遞歸)來添加兩個整數與他們的MSB對齊。MSB對齊加法
例如:125 + 25 = 375
我試圖扭轉位有效對準他們,但賬面是完全錯誤的。即。 526(625)+ 05(50)= 531。
我正在尋找一種方式(最好是遞歸)來添加兩個整數與他們的MSB對齊。MSB對齊加法
例如:125 + 25 = 375
我試圖扭轉位有效對準他們,但賬面是完全錯誤的。即。 526(625)+ 05(50)= 531。
您需要爲此包含math.h。假設m和n是自然數,下面的工作方式是將較小的數乘以10(如果需要),直到它具有與較大數相同的位數,然後進行相加。
int funkyAdd (int m, int n)
{
if ((m<=0)||(n<=0)){return -1;}
int smaller=std::min(m,n);
int larger=std::max(m,n);
while (floor(log10(smaller))<floor(log10(larger))){smaller*=10;};
return (smaller+larger);
}
作爲一個初始問題,你打算如何表示'0600'(完成前導零)? –
@IgorTandetnik在我的代碼中,我用一定的數值計算了這些數字,並且知道了前導零。 some_constant * x – Jarann
找到小於或等於每個數字的10的冪,用十的兩個冪的除數乘以較小的一個,然後與較大的一個相加。 – GurV