嵌套根号的计算函数:

如:输入2,3

这道题我选择用递归的来完成,代码如下:

// 定义一个函数,用于计算嵌套根号  
float sqrt_ca(double x, int n, double x0)  
{  
    // 如果嵌套次数为1,直接返回x的平方根  
    if (n == 1)  
    {  
        return sqrt(x);  
    }  
    // 否则,递归调用sqrt_ca函数,计算嵌套根号  
    else  
    {  
        float temp = sqrt_ca(sqrt(x) + x0, n - 1, x0);  
        return temp;  
    }  
}

这里有一个点值得说明:那么就是x0的作用,这个是一个比较难理解的点,看到之后可能会点蒙,我不好叙述,简单的写了递归的过程,以及如果将x0替换为x会发生什么?

我们先看错误版本的代码:

// 定义一个函数,用于计算嵌套根号  
float sqrt_ca(double x, int n)  
{  
    // 如果嵌套次数为1,直接返回x的平方根  
    if (n == 1)  
    {  
        return sqrt(x);  
    }  
    // 否则,递归调用sqrt_ca函数,计算嵌套根号  
    else  
    {  
        float temp = sqrt_ca(sqrt(x) + x, n - 1;  
        return temp;  
    }  
}

x=2,n=3,输出结果:2.29,正确的答案是1.96

我们来看一下2.29和1.96是怎么算出来的:

所以错误的点在于x的值,也就是要嵌套的值发生了改变.

对于这道题的错误版本还有很多,大多都是这个错误,因为我也是一步步改代码,调试出来的,这个递归的结构不算复杂,就是在这些细节上需要注意.

以下是对于这道题的完整解答:因为有sqrt,别忘了#include <math.h>

int main()
{
	double x;
	int n;
	printf("请输入x,n:");
	scanf("%lf,%d", &x, &n);
	printf("y=%.2f", sqrt_ca(x, n, x));
	return 0;
}

这道题就分享到这里,希望大家喜欢,如有错误,请评论区指出,谢谢.

相关推荐

  1. php 根据位置经纬度计算距离

    2023-12-15 06:42:02       26 阅读
  2. lodash库中函数处理嵌套对象和数组函数

    2023-12-15 06:42:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 06:42:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 06:42:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 06:42:02       87 阅读
  4. Python语言-面向对象

    2023-12-15 06:42:02       96 阅读

热门阅读

  1. 在云服务器上部署Springboot项目

    2023-12-15 06:42:02       74 阅读
  2. 大语言模型--危害

    2023-12-15 06:42:02       59 阅读
  3. Python中的内存泄漏及其检测方法

    2023-12-15 06:42:02       61 阅读