C语言测试n的阶乘和x的n次方

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

x - x^{2}/2! + x^3/3! + ... + (-1)^{n-1}x^n/n! 

×输出保留4位小数。

输入
x n

输出
数列和

样例输入
2.0 3

样例输出
1.3333

 

答案

/*************************************************************************> File Name: 2.c> Author: > Mail: > Created Time: Wed 12 Dec 2018 09:03:22 AM CST************************************************************************/#include<stdio.h>double fact(int n)
{double s = 1.0;for(int i=1; i<= n; i++){s=s*i;} return s;
}double mypow(double x,int n)
{                 double s = 1.0;//printf("%lf %d\n",x,n);if(n == 0)    {             return 1.0; }             if(n == 1)    {             return x;                                                                               }             s = x;for(int i =0;i<n-1;i++){             s = x*s;   }//printf("%lf \n",s);return s;     
}   void main(void)
{double x = 0.0;int n = 0;double s;scanf("%lf %d",&x,&n);//printf("%lf\n",mypow(-1.0,2));if(n == 1){s = x;}else{s = x;for(int i=2;i<=n;i++){s = s+ mypow(-1.0,i-1)*mypow(x,i)/fact(i);}}printf("%.4lf\n",s);
}

同事提供的答案,不用函数实现

#include <stdio.h>
int main ()
{
double x, ret, tmp1, tmp2;
int n, i, j;
while (~scanf("%lf %d", &x, &n))
{
ret = 0;
for (i = 1; i <= n; i++)
{
tmp1 = 1;
for (j = 1; j <= i; j++)
{
tmp1 *= x;
}
tmp2 = 1;
for (j = 1; j <= i; j++)
{
tmp2 *= j;
}
if (i % 2 == 1)
{
ret += tmp1 / tmp2;
}
else
{
ret -= tmp1 / tmp2;
}
}
printf("%.04f\n", ret);
}
return 0;
}

 

感兴趣的可以自行测试

2004年秋浙江省计算机等级考试二级C 编程题(2) - C语言网

 

 

欢迎关注微信公众号-嵌入式Linux

觉得不错,请帮忙转发,点赞,您的每一次支持,我都将铭记于心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468891.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己动手写java虚拟机_自己动手写操作系统(要了解的知识点)

自己动手写操作系统(开篇)自己动手写操作系统(字符显示)说明&#xff1a;Intel 8086 或者不同的处理器&#xff0c;开机寄存器数据可能不一样&#xff0c;但是大致原理差不多了解过计算机启动的同学肯定知道&#xff0c;当计算机启动的时候 BIOS 会加载 MBR 数据 512 字节到 0x…

git入门基础

git基础 参考&#xff1a;官网git基础 git 文件的生命周期 文件的生命周期图&#xff1a; git中的文件可以分为4个阶段. Untracked &#xff1a; 这是目录中没有被跟踪的文件&#xff0c;即不在git项目中&#xff0c;使用 git commit 等命令对文件进行提交时不会提交这样的文件…

Android 充电LED控制

1、前言 充电LED灯控制是Android设备的基本功能&#xff0c;主要用于提示设备的电池状态&#xff0c;充电状态&#xff0c;满电状态&#xff0c;低电状态&#xff0c;很多手机厂商还使用呼吸效果来显示&#xff0c;普通的低端设备会使用两个LED灯表示&#xff0c;红灯表示充电…

【PyAutoGUI操作指南】04 消息框功能+Question+Waring+Critical+自定义消息框

PyAutoGUI利用PyMsgBox中的消息框函数提供跨平台的纯Python方式来显示JavaScript样式的消息框。 5.1 alert&#xff08;&#xff09; import pyautoguipyautogui.alert(text这里写内容, title通知框标题位置, buttonOK)5.2 confirm() import pyautoguipyautogui.alert(text这…

js 弹出层的点击事件影响到底层的点击事件_聊一聊 Node.js 错误处理

个人博客&#xff1a;https://blog.skrskrskrskr.com错误分类软件程序中&#xff0c;我们可以将错误大致分为外部错误和内部错误两大类。外部错误是正确编写的程序在运行时产生的错误。它并不是程序本身的 bug&#xff0c;更多是一些外部原因导致的问题&#xff0c;比如请求超时…

老王带你理解算法复杂度O(1),O(N),O(N^2)

上图对应的是算法复杂度的图片&#xff0c;X轴对应的是n(问题规模)&#xff0c;Y轴对应的是执行的运行时间。 我们先从简单的复杂度解读O(1) 从上面的图片我们可以看到O(1)的复杂度是恒定的&#xff0c;一点波澜都没有&#xff0c;什么是O(1)呢&#xff0c;就比如你是一个酒店…

【PyAutoGUI操作指南】05 屏幕截图与图像定位:截图+定位单个目标+定位全部目标+灰度匹配+像素匹配+获取屏幕截图中像素的RGB颜色

6 屏幕截图与图像定位 PyAutoGUI可以拍摄屏幕截图&#xff0c;将其保存到文件中&#xff0c;并在屏幕中定位图像。OSX使用操作系统附带的screencapture命令。Linux使用scrot命令&#xff0c;可以通过运行sudo-apt-get-install-scrot来安装该命令。 功能介绍&#xff1a;一个需…

C语言-数组a 和a 的区别

面试经典题目 #include "stdio.h"int main() {int a[5] { 1,2,3,4,5 };int *ptr (int *)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));/*getchar是用VS编写方便查看输出*/getchar();return 0; }请思考一下上面的输出结果&#xff0c;如果你非常自…

前端为什么有的接口明明是成功回调却执行了.catch失败回调_前端进阶高薪必看-手写源码篇(高频技术点)...

前言此系列作为笔者之前发过的前端高频面试整理的补充 会比较偏向中高前端面试问题 当然大家都是从新手一路走过来的 感兴趣的朋友们都可以看哈初衷我相信不少同学面试的时候最怕的一个环节就是手写代码 大家一定听过这句话talk is cheap, show me the code 没事 此文章不仅包含…

C/C++函数指针与指针函数

前面说的话 面试的时候&#xff0c;经常有面试官问这个问题&#xff0c;在Linux内核里面也是经常被使用的&#xff0c;在看很多大神的代码里面&#xff0c;我们也经常遇到函数指针与指针函数&#xff0c;一样&#xff0c;如果你自己没问题了&#xff0c;就不用往下看了。 定义…

jsp人事管理系统_Jsp+Ssm+Mysql实现的医院人事管理系统源码附带视频运行教程

项目地址&#xff1a;jspssmmysql实现的医院人事管理系统源码附带视频运行教程|猿来入此【beta】多用户版IT项目教程源码分享网站​www.yuanlrc.com今天给大家演示的是一款由jspssm&#xff08;springspringMVCmybatis&#xff09;实现的医院人事管理系统&#xff0c;系统比较简…

RK3288/RK3399 CPU定频方法

直接上方法 查看cpu能支持的频率 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 写入userspace说明要用户设定频率 echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor 写入上面列出的cpu频率 echo 1608000 > …

notepad++正则表达式去掉关键字所在行

如下图 1、选择正则表达式 2、选择匹配大小写 3、^(.*)KERNEL(.*)$\n 加上\n就是把去除的行删除&#xff0c;不加就算把删除的行替换为空格

深度学习·理论篇(2023版)·第003篇深度学习和计算机视觉中的基础数学知识02:特征向量和特征值+矩阵乘法的几何意义(2)+奇异值分解+线性可分性和维度+非线性变换

&#x1f495;恭喜本博客浏览量达到两百万&#xff0c;CSDN内容合伙人&#xff0c;CSDN人工智能领域实力新星~ &#x1f9e1;本文章为2021版本迭代更新版本&#xff0c;在结合有效知识的基础上对文章进行合理的增加&#xff0c;使得整个文章时刻顺应时代需要 &#x1f9e1;本…

Oracle 控制文件管理

控制文件是一个很小的二进制文件(10MB左右)&#xff0c;含有数据库结构信息&#xff0c;包括数据文件和日志文件信息。控制文件在数据库创建时被自动创建&#xff0c;并在数据库发生物理变数时更新。控制文件被不断更新&#xff0c;在任何时候都要保证控制文件可用&#xff0c;…

数组超过预设的最大数组大小_工作表数组大小的扩展及意义

朋友们好&#xff0c;今日给大家继续讲解VBA数组与字典解决方案的第17讲&#xff0c;数组大小的扩充问题。这一讲的内容相对比较简单&#xff0c;在之前的章节中讲了数组与数组的计算规律&#xff0c;也是利用了数组的扩展原理。其实&#xff0c;两个数组计算时&#xff0c;参与…

Android ANR 实例分析

什么是ANR&#xff1f; 以下四个条件都可以造成ANR发生&#xff1a; InputDispatching Timeout&#xff1a;5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout &#xff1a;在执行前台广播&#xff08;BroadcastReceiver&#xff09;的onReceive()函数时10秒没…

【GIT 基础篇六】分支管理(创建与合并)

上篇我们整理了如何创建远程仓库&#xff0c;以及如何将本地文件上传至远程仓库&#xff0c;仓库创建好了&#xff0c;我们接下来就要准备开发了&#xff0c;对于使用git而言&#xff0c;通常的习惯就是一人一个分支&#xff0c;等测试无误再合并&#xff1b;又或者根据需求创建…

git 命令汇总

瞎扯 最近有几个留言想让写下git的内容&#xff0c;git是一个工具&#xff0c;主要是用来管理码农的代码的&#xff0c;理由很简单&#xff0c;码农写的代码太多&#xff0c;自己都不知道可能哪里出现了Crash。Linux也是因为git的出现&#xff0c;可以让世界上越来越多的人维护…

我的最佳队友之K8无线蓝牙键盘深度使用测评( Keychron K8 )

K8 无线蓝牙键盘深度使用测评&#xff08; Keychron K8 &#xff09;——500 元左右最适配 Mac 电脑的机械键盘 0.键盘参数&#xff1a; 首先我们在实际测评之前&#xff0c;看下这个键盘的具体参数&#xff0c;心里有个大致的了解~ 87键 国产佳达隆G轴 可选茶轴/红轴/青轴 蓝…