时间:2021-05-20
题目描述
输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。
×输出保留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;}总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
关于递归函数: 函数内部调用自身的函数。以n阶乘为例: f(n)=n!=1x2x3x4x...x(n-1)x(n)=nx(n-1)!deffactorial
定义计算N的阶乘的函数1)使用循环计算阶乘deffrac(n):r=1ifn
让我们写一个计算阶乘的函数.对于阶乘的数学定义如下:n!=1(当n==0时)=n*(n-1)!(其它情况)在Ruby里,可以这样来写:复制代码代码如下:deff
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘n!=1x2x3x...xn,用函数fact(n)表
阶乘(Factorial)是个很有意思的函数,但是不少人都比较怕它,我们来看看两个与阶乘相关的问题:1、给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如: