我正在尝试创建一个计算乘法持久性的应用程序,就像在这个视频中:https://youtu.be/Wim9WJeDTHQ?t=197。
但是我的问题是,在while循环的迭代期间,我的向量似乎没有被清除。这意味着产生的产量呈指数增长,而不是降至0。
我对编码c ++很新,所以任何反馈都会受到赞赏。
std::vector<int> per;
int input;
int result;
int new_total = 1;
int loop_total;
std::cin >> input;
//Moving the user input into a vector
while (input > 0)
{
result = input % 10;
input = input / 10;
per.push_back(result);
}
//loops to multiply new sets of numbers together until "new_total" is 0
while (new_total > 0) {
for (int i = per.size() - 1; i >= 0; i--)
{
new_total = new_total * per[i];
}
per.clear();
std::cout << "\n" << new_total << "\n";
loop_total = new_total;
while (loop_total > 0)
{
result = loop_total % 10;
loop_total = loop_total / 10;
per.push_back(result);
}
}
我期望每次都清除矢量,以便将新的数字组移动到矢量中以进行相乘。
然而,前一组数字似乎仍然存在于向量中。
谢谢各位的帮助。通过设置new_total = 1来解决我的问题的解决方案;在while循环的开头,这在new_value不断增加之前是有意义的。
谢谢你的帮助:)