当前位置: 首页 > news >正文

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;
}

http://www.lryc.cn/news/335486.html

相关文章:

  • Unity与CocosCreator对比学习二
  • 01-Git 快速入门
  • Axure RP中的相关概念及高保真原型构建方法
  • Ruoyi-vue-pro Vue + nginx 二级目录部署到云服务器
  • leetcode2529--正整数和负整数的最大计数
  • 使用YOLOv8训练自己的【目标检测】数据集
  • rust学习(recursive mutex 实现)
  • DasViewer可以添加照片到里面吗?点开就可以看照片?
  • python蓝桥杯选数
  • 联想电脑开启虚拟化失败,开启虚拟化却提示还没有开启虚拟化
  • 物联网农业四情在线监测系统
  • MySQL8.3.0 主从复制方案(master/slave)
  • 大数据相关组件安装及使用
  • 【攻防世界】web2(逆向解密)
  • Linux文件查找命令详解——以CentOS为例
  • 【JavaEE】浅谈线程(一)
  • 深度解析SPARK的基本概念
  • FreeGPT3.5 开源软件
  • AI绘本生成解决方案,快速生成高质量的AI绘本视频
  • RabbitMQ3.13.x之九_Docker中安装RabbitMQ
  • 【操作系统】STM32-操作系统——持续更新
  • Redux Toolkit+TypeScript最佳实践
  • 假期别闲着:REST API实战演练之创建Rest API
  • C++模仿qq界面
  • 3D模型在线轻量化工具
  • 去中心化社交媒体:分析 Facebook 在区块链平台上的角色
  • 实现多租户JAVA支付(微信拉起支付):一个简单而强大的解决方案
  • 万字长文:FineBI面试题及参考答案详解
  • Python爬虫:为什么你爬取不到网页数据
  • NLP在搜索召回领域中的应用场景