C 给定以下系列。。。级数的第n项等于(n-1)th^2+;序列的第一项是1,使用递归

C 给定以下系列。。。级数的第n项等于(n-1)th^2+;序列的第一项是1,使用递归,c,recursion,C,Recursion,给定以下序列:1,2,5,26677, ..... 使得级数的第n项等于 (n-1)th^2+1,级数的第一项为1。 使用名为f的递归函数编写一个程序来计算第n项。使用for循环打印 f值 系列中的前n个术语。您将从用户处获取输入n 谁能帮我弄清楚我到底在这里干什么?我不知道如何使用递归实现,我知道如何不用递归实现 谢谢, t 编辑:我现在要做这个序列,我只是不知道如何修复它,因为有一个for循环执行这个序列的前5个,然后递归函数执行其余的: #include <stdio.h> #

给定以下序列:1,2,5,26677, ..... 使得级数的第n项等于 (n-1)th^2+1,级数的第一项为1。 使用名为f的递归函数编写一个程序来计算第n项。使用for循环打印 f值 系列中的前n个术语。您将从用户处获取输入n

谁能帮我弄清楚我到底在这里干什么?我不知道如何使用递归实现,我知道如何不用递归实现

谢谢, t

编辑:我现在要做这个序列,我只是不知道如何修复它,因为有一个for循环执行这个序列的前5个,然后递归函数执行其余的:

#include <stdio.h>
#include <math.h>

double f(double n);

int main(){
/*
    Problem 6:
    - Recursive function to generate nth term of f(x)
*/

double nth;
int i = 0,flag=1;
double result;
int seq[] = {1,2,5,26,677};

printf("Please enter the number of terms you would like to generate: 

\n");

    while(flag == 1){
        if(scanf("%lf",&nth) == 1){
            flag = 0;
        }
        else{
            printf("Invalid number, program is exiting...\n");
            return 0;
        }
    }

    result = f(nth);

    return 0;
}


double f(double n){
    // base condition
    if(n == 1)
        return 1;
    else
        printf("(%.0lf)",pow(f(n-1),2.0) + 1);
}
#包括
#包括
双f(双n);
int main(){
/*
问题6:
-生成f(x)第n项的递归函数
*/
双N;
int i=0,flag=1;
双重结果;
int-seq[]={1,2,5,26677};
printf(“请输入您希望生成的条款数量:
\n”);
while(标志==1){
如果(扫描频率(“%lf”,&n)==1){
flag=0;
}
否则{
printf(“无效号码,程序正在退出…\n”);
返回0;
}
}
结果=f(n次);
返回0;
}
双f(双n){
//基本条件
如果(n==1)
返回1;
其他的
printf((.0lf)”,功率(f(n-1),2.0)+1;
}

您可以在一行中完成

#include <stdio.h>

size_t f(size_t nth) {
  return nth == 1 ? 1 : f(nth - 1) * f(nth - 1) + 1;
}

int main() {
  printf("%zu", f(5));
  return 0;
}
#包括
尺寸f(尺寸N){
返回n==1?1:f(n-1)*f(n-1)+1;
}
int main(){
printf(“%zu”,f(5));
返回0;
}

从您尝试过的内容开始。规则是以递归方式编写的。这就像复制并粘贴到您的函数中一样。。这通常意味着你需要的是半个小时的时间与当地的导师交流或是浏览教程,而不是堆栈溢出。@tidwellxyz:在伪代码中,In看起来像
f(n):如果n==1,则返回1,否则返回f(n-1)^2+1
@JohnBode这是我在这篇文章中收到的最有用的东西。。谢谢。我刚刚用我找到的解决方案编辑了它,但我无法获得前5个数字的for循环。。有什么想法吗?