不同路径编译器代码 需要手动输入 还要带ui
时间: 2023-09-16 22:11:54 浏览: 82
以下是一个使用C++和Qt实现的带有UI界面的不同路径算法程序,其中需要手动输入m和n的值:
```c++
#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QGridLayout>
#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>> dp(m, vector<int>(n, 0));
for (int i = 0; i < m; i++) dp[i][0] = 1;
for (int j = 0; j < n; j++) dp[0][j] = 1;
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
return dp[m - 1][n - 1];
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget *widget = new QWidget();
QLabel *label1 = new QLabel("请输入m的值:");
QLineEdit *edit1 = new QLineEdit();
QLabel *label2 = new QLabel("请输入n的值:");
QLineEdit *edit2 = new QLineEdit();
QPushButton *button = new QPushButton("计算不同路径数");
QLabel *resultLabel = new QLabel();
QGridLayout *layout = new QGridLayout();
layout->addWidget(label1, 0, 0);
layout->addWidget(edit1, 0, 1);
layout->addWidget(label2, 1, 0);
layout->addWidget(edit2, 1, 1);
layout->addWidget(button, 2, 0, 1, 2);
layout->addWidget(resultLabel, 3, 0, 1, 2);
widget->setLayout(layout);
widget->show();
QObject::connect(button, &QPushButton::clicked, [=]() {
int m = edit1->text().toInt();
int n = edit2->text().toInt();
Solution s;
int res = s.uniquePaths(m, n);
resultLabel->setText(QString("不同路径数为:%1").arg(res));
});
return app.exec();
}
```
在Qt Creator中创建一个新的Qt Widgets Application项目,并将以上代码复制到main.cpp文件中,即可使用Qt Creator进行编译和运行。在main.cpp所在目录下执行以下命令进行编译:
```
qmake -project
qmake
make
```
执行以下命令即可运行:
```
./your_project_name
```
其中,your_project_name是你的项目名称。然后,按照UI界面中的提示输入m和n的值,点击“计算不同路径数”按钮,程序将会在UI界面中显示不同路径数的结果。
阅读全文