gpt4 book ai didi

c - 编写递归函数

转载 作者:行者123 更新时间:2023-11-30 19:07:23 24 4
gpt4 key购买 nike

我在编写递归函数时遇到问题。

三角形数如下:

1 = 1

3 = 1 + 2

6 = 1 + 2 + 3

10 = 1 + 2 + 3 + 4

15 = 1 + 2 + 3 + 4 + 5

21 = 1 + 2 + 3 + 4 + 5 + 6

等等

级数从 1(第一个三角形数)开始。要计算第 n 个三角数,n 为添加到之前的三角形数。例如计算第四个三角数将 4 添加到第三个三角形数(即 6),即 10 = (1 + 2 + 3) + 4。

到目前为止,这就是我的想法:

int triNum(n)
{
if (n<=1)
return n;

int num = 0;

for (int i = 0; i < n; i++)
{
num = n + triNum(n-1)
}
return num;
}

但是我不确定这是否是正确的答案,有人可以帮助指导我如何解决这个问题吗?

最佳答案

这里产生所需的输出:

int tri(int n) {
if (n < 1) return 1;
return (n+1) + tri(n-1);
}

你可以这样测试:

int main(void){
for (int i=0; i<10; i++) {
printf("%d: %d\n",i,tri(i));
}
return 0;
}

关于c - 编写递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46900419/

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