lucky_cutie 2020-01-05 10:40 采纳率: 100%
浏览 144
已采纳

dev与vs运行结果不同 矩阵路径数问题

求解(ㄒoㄒ)
应该算**矩阵路径数问题**,代码如下

#include<iostream>
using namespace std;

long long m, n, ans;
int dp[100][100];

long long solve(int m, int n) {
    if (m == 1 || n == 1)
        return 1;
    else if (dp[m][n] > 0) {
        cout << m << " " << n << " " << dp[m][n] << endl;//在这里输出查看
        return dp[m][n];
    }
    //else if (dp[n][m] > 0)
    //  return dp[n][m];
    else dp[m][n] = solve(m - 1, n) + solve(m, n - 1);                  //只能从上或左来,等于到左边格子的路径数加到右边格子的路径数
}

int main() {
    cin >> m >> n;
    for (int i = 0; i < 100; i++) {              //初始化
        for (int j = 0; j < 100; j++) {
            dp[i][j] = -1;
        }
    }
    ans = solve(m, n);
    cout << ans << endl;
    return 0;
}

同样的代码在vs中可以输出正确结果,在dev中却错误
这是输入10 10 在dev中的输出结果
图片说明
正确运行结果应该是48620
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-01-05 18:20
    关注

    int dp[100][100];
    用memset把dp先清0看看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?