gpt4 book ai didi

具有递归功能的中国环

转载 作者:行者123 更新时间:2023-11-30 14:41:47 24 4
gpt4 key购买 nike

请您对我的解决方案发表意见。

我必须实现一个递归函数来实现中国的Rings游戏。这个游戏包括戴上最初关闭的 n 个戒指。这些环用表格表示(大小=n)。最初,所有表格单元格 =0,最终状态 --> 所有表格单元格 =1。练习建议使用如下定义的“chinese”函数来编写递归解决方案:

chinese (t, k, b)
{
if (b)
replace(t,k)
else
remove(t,k)
}

已知“替换”和“删除”函数是相互递归的。“替换”将所有单元格从 1..k 打开(t[i]=1),“删除”将所有单元格关闭(t[i]) =0)。所以我提出的解决方案如下:

void main ()
{
int b=1;
chinese (t, n, 1);
}

对于替换和删除功能:

void replace(int n)
{
if (n > 0) // Do nothing for 0 or fewer rings.
{
replace(n-1);
remove(n-2);
printf("put on ring %d",n);
replace(n-2);
}
}


void remove(int n)
{
if (n > 0) // Do nothing for 0 or fewer rings.
{
remove(n-2);
printf("Take off ring %d",n);
replace(n-2);
remove(n-1);
}
}

那么您对我提出的解决方案有何看法?非常感谢

最佳答案

主要的几件事

 int main(void)
{
int b=1; // b is never used
chinese (t, n, 1); // undefinef t and n
}

关于具有递归功能的中国环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54738484/

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