0
我要乘其存儲爲vectors.To兩個整數存儲我使用乘兩個大整數存儲爲整數載體
std::vector<std::vector<int>> result
在哪裏存儲部分結果行和最後一行將最終結果存儲最終結果。我計算了部分結果行,現在必須添加它們。我已經有了一個大整數加法函數。爲了對齊部分結果行,我所做的是在所有部分結果行中追加零(如果需要)附加到第二部分結果行,2 0附加到第三部分結果行等)。然後我添加所有部分結果行並將結果存儲在另一行。現在我以類似的方式刪除附加的零。
void putzeroesatend(std::vector<std::vector<int>> &something)
{
std::vector<std::vector<int>>::iterator i;
int k=0;
for(i=something.begin();i!=something.end();i++,k++)
{
for(int p=1;p<=k;p++)
(*i).push_back(0);
}
}
void removezeroesatend(std::vector<std::vector<int>> &something)
{
std::vector<std::vector<int>>::iterator i;
int k=0;
for(i=something.begin();i!=something.end()-1;i++,k++)
{
for(int p=1;p<=k;p++)
(*i).pop_back();
}
}
然後在我的計算部分結果後乘功能,我做的
putzeroesatend(result);
std::vector<int> newrow;
result.push_back(newrow);
for(p=result.begin();p!=result.end()-1;p++)
{
result[result.size()-1]=add(result[result.size()-1],*p);
}
removezeroesatend(result);
這是工作,但是這可能是一個更好的解決方案中添加部分結果,而無需追加零以下然後將其刪除。
只需創建一個採用未對齊操作數的新增函數。 – 2014-11-24 15:39:22