gpt4 book ai didi

c++ - 如何在 C++ 中递归地填充矩阵?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:12 25 4
gpt4 key购买 nike

所以我必须递归地填充一个方阵。对于尺寸 N=5,它应该是:

  1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

但是我的程序显示:

  1 1 1 1 1
1 2 2 2 1
1 2 3 3 1
1 2 2 2 1
1 1 1 1 1

void llenar5 (int** mat, int n, int f=0, int c=0,int k=2)
{
if (f<n)
{
if (c<n)
{
if (f==0 ||c==0||f==n-1||c==n-1)
{
*(*(mat+f)+c)=1;
llenar5(mat,n,f,c+1,k); //move to the right
}
else if (f==k-1 ||c==k-1||f==n-k||c==n-k)
{
*(*(mat+f)+c)=k;
llenar5(mat,n,f,c+1,k++);
}
}
llenar5(mat,n,f+1,c,k);
}

我在动态内存中创建一个矩阵,我尝试调用函数 llenar5(mat,n,f+1,c+1,k+1) 来跳转列和行,同时递增值。

最佳答案

void llenar5 (int** mat, int n, int f=0, int c=0,int k=1)
{
if (f<n)
{
if (c<n)
{
if (f==k-1 ||c==k-1||f==n-k||c==n-k)
{
*(*(mat+f)+c)=k;
llenar5(mat,n,f,c+1,k+1);
}
llenar5(mat,n,f,c+1,k);
}
llenar5(mat,n,f+1,c,k);
}

关于c++ - 如何在 C++ 中递归地填充矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29068567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com