C++怎么利用栈实现分解质因数并降序输出?栈的设计算法是void detach(int n)
分解质因数并降序输出的步骤如下:
以下是C++中利用栈实现分解质因数并降序输出的示例代码,其中detach函数负责将n分解质因数并将结果压入栈中:
#include <iostream>
#include <stack>
#include <cmath>
using namespace std;
void detach(int n) {
stack<int> st;
int i = 2;
while (i <= sqrt(n)) {
if (n % i == 0) {
st.push(i);
n /= i;
} else {
i++;
}
}
if (n > 1) {
st.push(n);
}
while (!st.empty()) {
cout << st.top() << " ";
st.pop();
}
}
int main() {
int n;
cin >> n;
detach(n);
return 0;
}
例如,对于输入n=36,程序会输出“3 2 2 ”。