題目描述
輸入一個正數(shù)x和一個正整數(shù)n,求下列算式的值。要求定義兩個調(diào)用函數(shù):fact(n)計算n的階乘;mypow(x,n)計算x的n次冪(即xn),兩個函數(shù)的返回值類型是double。
????? x - x2/2! + x3/3! + ... + (-1)n-1xn/n!
×輸出保留4位小數(shù)。
輸入格式
x n
輸出格式
數(shù)列和
樣例輸入
2.0 3
樣例輸出
1.3333
代碼解析
-
定義
fact
函數(shù):fact(int n)
函數(shù)用于計算一個整數(shù)n
的階乘。它通過一個for
循環(huán)來累乘從1到n
的所有整數(shù),并將結(jié)果存儲在sum
變量中。最后,返回計算得到的階乘值。double fact(int n) { double sum = 1; for (int i = 1; i <= n; i++) { sum = sum * i; } return sum; }
-
定義
mypow
函數(shù):mypow(double x, int n)
函數(shù)用于計算x
的n
次冪的近似值。它使用了一個for
循環(huán),從1遍歷到n
,每次迭代中計算(-1)^(i-1) * x^i / fact(i)
的值,并累加到sum
變量中。這里,pow(-1, i - 1)
用于生成交替的正負(fù)號,pow(x, i)
用于計算x
的i
次冪,fact(i)
用于計算i
的階乘,用于分母的計算。最后,返回累加的sum
值作為x
的n
次冪的近似值。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; }
-
主函數(shù)
main
:int main(void)
是程序的入口點。在這個函數(shù)中,首先通過scanf
函數(shù)讀取用戶輸入的兩個值:一個是雙精度浮點數(shù)x
,另一個是整數(shù)n
。int main(void) { double x; int n; scanf("%lf%d", &x, &n); }
-
調(diào)用
mypow
函數(shù)并輸出結(jié)果: 調(diào)用mypow
函數(shù),傳入用戶輸入的x
和n
作為參數(shù),計算x
的n
次冪的近似值。使用printf
函數(shù)輸出mypow
函數(shù)返回的結(jié)果,格式化為保留四位小數(shù)的浮點數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-850140.htmlprintf("%.4lf",mypow(x,n));
-
函數(shù)返回:
return 0;
表示main
函數(shù)執(zhí)行成功并返回0。在C語言中,main
函數(shù)的返回值通常用于表示程序的退出狀態(tài),其中0表示成功。文章來源地址http://www.zghlxwxcb.cn/news/detail-850140.htmlreturn 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;
}
到了這里,關(guān)于C語言題目:階乘數(shù)列求和(函數(shù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!