1. 计算阶乘的函数
阶乘是比指数函数快的函数中增长最慢的。因为指数函数的增长一直都是以底数的倍数,而阶乘函数的增长是以自然数列为倍数。0!=1,1!=1,2!=2,3!=6,……n!=n(n-1)!必有3x!>2^x。
阶乘是比指数函数快的函数中增长最慢的。因为指数函数的增长一直都是以底数的倍数,而阶乘函数的增长是以自然数列为倍数。0!=1,1!=1,2!=2,3!=6,……n!=n(n-1)!必有3x!>2^x。
2. 计算阶乘函数的编辑
#include <iostream>
using namespace std;
int f(int i)
{
int t=1,j;
for(j=1;j<=i;j++)
t=t*j;
return t;
}
int main(int argc, char* argv[])
{
int N,i, sum=0;
cout<<"输入N:";
cin>>N;
for(i=1;i<=N;i++)
sum=sum+f(i);
cout<<"sum="<<sum<<endl;
return 0;
}
函数不能嵌套定义。所以int f(int i) 函数需要放在主函数外面。修改后的代码可以正确运行。
3. c语言计算阶乘的函数
分析下程序,阶乘可以用递归做,也可以用循环做,这里就放上这两种代码了。
一.递归:
#include <stdio.h>
int f(int t)
{
if (t==1)
return 1;
else
return t*f(t-1);
}
int main()
{
printf("%d\n",f(10));
return 0;
}
程序分析:定义一个f函数,利用递归的特性,进行运算
10*f(9) = 10*9*f(8) …… 直到到1时返回1
得出结果:
二.循环:
#include <stdio.h>
int main()
{
int t1=1;
for(int i=10;i>=1;i--)
{
t1 = t1*i;
}
printf("%d", t1);
return 0;
}
程序分析:直接用一个for循环进行自减即可完成,定义t1用于存储结果
得出结果:
4. 计算阶乘的函数Python
1、头文件:#include
2、原型:
double pow(double x, double y);
pow() 函数用来求 x 的 y 次幂(次方)
pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。
3、举例如下:
double a = pow(4, 2); // 计算4的平方
4、可能导致错误的情况:
如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。
如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。
如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。
如果返回值 ret 太大或者太小,将会导致 range error 错误。
错误代码:
如果发生 domain error 错误,那么全局变量 errno 将被设置为 EDOM;
如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。
注意:1、使用pow函数时,需要将头文件#include包 含进源文件中。
2、用pow(x,y)的话要用到math.h头文件。
扩展资料:
1、 三角函数: double sin (double);正弦 double cos (double);余弦 double tan (double);正切
2 、反三角函数: double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI] double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2] double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]
3 、双曲三角函数: double sinh (double); double cosh (double); double tanh (double);
4 、指数与对数: double exp (double); double sqrt (double);开平方 double log (double); 以
5. 计算阶乘的函数calFactorial
matlab中的阶乘函数是factorial,其函数形式为:
factorial(N)
当N为向量时,计算从1到N这N个数的乘积,即相当于prod(1:N);
当N是N维数组时,计算N中每个元素的阶乘。
注意:由于在matlab中双精度浮点数的整数位数大约是15位,只有对不大于21的整数计算结果是精确的,对大于21的整数,factorial的计算结果只有前15位是准确的。
举例说明如下:
(1)计算6的阶乘。
在matlab命令窗口(Command Window)中,输入
y = factorial(6)
运算结果为:720
与在Matlab命令窗口(Command Window)中,输入
y = prod(1:6)
运算结果为:720。与factorial(6) 的结果相同。
(2)同时计算 5,6,7,10的阶乘。
在Matlab命令窗口(Command Window)中,输入命令
y = factorial([5 6 7 10])
运算结果为:120 720 5040 3628800,是数组中每个元素的阶乘。
- 相关评论
- 我要评论
-