炫意html5
最早CSS3和HTML5移动技术网站之一

有大佬看一下我这个用递归求杨辉三角哪里错了吗

include<iostream>

using namespace std;
int yh(int i,int j)
{
int a[i][j] = {};
a[1][0] = 1;
if(i == j) a[i][j] = 1;
if(i>1&&i
!=j)a[i][j] = yh(i-1,j-1)+yh(i-1,j);
return a[i][j];
}
int main()
{
int i,j;
for(i = 0;i<10;i++)
{
for(j = 0;j<i;j++)
{
cout <<yh(i,j)<<‘\t’;
}
cout <<endl;
}
return 0;
}

回答

你这个代码在我这里编译不过去。

int a[i][j] = {};

不定长的数组在C++是编译不通过的。还有你的杨辉三角末尾少了个1。

还有其他问题,我给出以下修改方案,自己仔细看看是哪里出了问题。

#include <iostream>
using namespace std;

int yh(int i, int j)
{
    int a[10][10] = {};    //修改1:解决编译不过去
    a[1][0] = 1;
    if (i == j)
        a[i][j] = 1;
    if (i > 1 && i != j)
        a[i][j] = yh(i - 1, j - 1) + yh(i - 1, j);
    return a[i][j];
}
int main()
{
    int i, j;
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j <= i; j++)   //修改2:杨辉三角每行最后少 1
        {
            cout << yh(i, j) << '\t';
        }
        cout << endl;
    }
    system("pause");
    return 0;
}

提问建议:请用代码块和格式化好的代码,这样的代码看起来不够赏心悦目,影响热心网友的心情。

炫意HTML5 » 有大佬看一下我这个用递归求杨辉三角哪里错了吗

Java基础教程Android基础教程