C语言题目:阶乘数列求和(函数)

题目描述

输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。

      x - x2/2! + x3/3! + ... + (-1)n-1xn/n!

×输出保留4位小数。

输入格式

x n

输出格式

数列和

样例输入

2.0 3

样例输出

1.3333

代码解析

  1. 定义fact函数: fact(int n)函数用于计算一个整数n的阶乘。它通过一个for循环来累乘从1到n的所有整数,并将结果存储在sum变量中。最后,返回计算得到的阶乘值。

    double fact(int n)
    {
        double sum = 1;
        for (int i = 1; i <= n; i++)
        {
            sum = sum * i;
        }
        return sum;
    }

  2. 定义mypow函数: mypow(double x, int n)函数用于计算xn次幂的近似值。它使用了一个for循环,从1遍历到n,每次迭代中计算(-1)^(i-1) * x^i / fact(i)的值,并累加到sum变量中。这里,pow(-1, i - 1)用于生成交替的正负号,pow(x, i)用于计算xi次幂,fact(i)用于计算i的阶乘,用于分母的计算。最后,返回累加的sum值作为xn次幂的近似值。

    double mypow(double x, int n)
    {
        double sum = 0;
        for (int i = 1; i <= n; i++)
        {
            sum = sum + (pow(-1, i - 1) * pow(x, i) / fact(i));
        }
        return sum;
    }

  3. 主函数main: int main(void)是程序的入口点。在这个函数中,首先通过scanf函数读取用户输入的两个值:一个是双精度浮点数x,另一个是整数n

    int main(void)
    {
        double x;
        int n;
        scanf("%lf%d", &x, &n);
    }

  4. 调用mypow函数并输出结果: 调用mypow函数,传入用户输入的xn作为参数,计算xn次幂的近似值。使用printf函数输出mypow函数返回的结果,格式化为保留四位小数的浮点数。

        printf("%.4lf",mypow(x,n));
    

  5. 函数返回: return 0;表示main函数执行成功并返回0。在C语言中,main函数的返回值通常用于表示程序的退出状态,其中0表示成功。

        return 0;
    

源代码

#include <stdio.h>
#include <math.h>
double fact(int n)
{
    double sum = 1;
    for (int i = 1; i <= n; i++)
    {
        sum = sum * i;
    }
    return sum;
}
double mypow(double x, int n)
{
    double sum = 0;
    for (int i = 1; i <= n; i++)
    {
        sum = sum + (pow(-1, i - 1) * pow(x, i) / fact(i));
    }
    return sum;
}
int main(void)
{
    double x;
    int n;
    scanf("%lf%d", &x, &n);
    printf("%.4lf",mypow(x,n));
    return 0;
}

相关推荐

  1. C语言题目乘数求和函数

    2024-04-10 04:02:03       31 阅读
  2. C语言题目乘数

    2024-04-10 04:02:03       33 阅读
  3. C语言:公式求和

    2024-04-10 04:02:03       57 阅读
  4. 题目 1155: C语言训练-乘和数*

    2024-04-10 04:02:03       53 阅读

最近更新

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

    2024-04-10 04:02:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 04:02:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 04:02:03       82 阅读
  4. Python语言-面向对象

    2024-04-10 04:02:03       91 阅读

热门阅读

  1. Element-plus使用中遇到的问题

    2024-04-10 04:02:03       34 阅读
  2. UVA1595 Symmetry 对称轴 解题报告

    2024-04-10 04:02:03       33 阅读
  3. npm install 太慢?解决方法

    2024-04-10 04:02:03       32 阅读
  4. 父子组件传值,子组件反显问题

    2024-04-10 04:02:03       29 阅读
  5. 选择排序-c++

    2024-04-10 04:02:03       38 阅读
  6. Linux从入门到精通 --- 1.初始Linux

    2024-04-10 04:02:03       40 阅读
  7. 线程常见问题

    2024-04-10 04:02:03       38 阅读
  8. c++day6

    c++day6

    2024-04-10 04:02:03      33 阅读
  9. 【接口测试】接口测试面试基础常识

    2024-04-10 04:02:03       40 阅读
  10. 京东采集器使用教程 京东商家爬虫软件分享

    2024-04-10 04:02:03       38 阅读