我正在尝试创建一个用于计算乘法持久性的应用程序,例如此视频: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);
}
}
我希望每次都会清除向量,以便将新的数字集移动到要相乘的向量中。
但是,向量中以前的数字似乎仍然存在。
答案 0 :(得分:0)
感谢大家的帮助。我的问题的解决方法是通过设置new_total = 1来解决的;在while循环的开始,这与将new_value不断地乘以之前一样有意义。
感谢所有帮助:)