zoomforest 发表于 2020-5-12 03:49:36

函数求值问题

用到递归的思想,求各位大佬解答!
求下列函数值:
y(x)=√(n+√((n-1)+√((n-2)+√(…√(2+√(1+x)) ) ) ) )

输入格式:第1行测试数据的组数T(1<=T<=20),后面跟着T行输入。每组测试数据占1行,包括正整数n(1<=n<=200),和一个浮点数x(0<x<100)。
输出格式:T行,每行输出对应一个输入,为所求得的函数值(保留3位小数)。
输入样例:
2
1 3.
20 3.3
输出样例:
2.000
4.987

liuzhengyuan 发表于 2020-5-12 08:07:32

用一个全局变量 sum 表示总和
把函数设一个参数 n
每次调用函数 n 就减 1

sunrise085 发表于 2020-5-12 09:25:21

#include <stdio.h>
#include <math.h>
double fun(int n,double x){
    double result;
    if (n>1)
      result=sqrt(n+fun(n-1,x));
    else
      result=sqrt(1+x);
    return result;
}
int main()
{
    int T,n,i;
    double x;
    printf("请输入数据组数T:");
    scanf("%d",&T);
    double result;
    for(i=0;i<T;i++){
      printf("请输入第%d组n和x:",i+1);
      scanf("%d%lf",&n,&x);
      result = fun(n,x);
    }
    printf("结果是:");
    for (i=0;i<T;i++)
      printf("%.3lf\n", result);
    return 0;
}

zoomforest 发表于 2020-5-13 01:02:58

谢谢各位大佬的帮助!
页: [1]
查看完整版本: 函数求值问题