1066 二级C语言-自定义函数

输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数:

(1)fact(n)计算n的阶乘;

(2)mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。

      x - x2/2! + x3/3! + ... + (-1)n-1xn/n!

1066 二级C语言-自定义函数_第1张图片

×输出保留4位小数

输入格式
x n

输出格式
数列和

样例输入
2.0 3
样例输出
1.3333

我的核心思想分别用for循环表示阶乘、以及x的n次方。 

观察数列最后是有规律的,假如是第n项,就是 -1的n+1次方 X的n次方 除以 fact(n)

差不多就是这个样子,做熟悉就行

#include
#include
using namespace std;

//阶乘
double fact(double n) {
	double res1 = 1.0;
	for (int i = 1; i <= n; i++) {
		res1 = res1 * i;
	}

	return res1;
}

//x的乘方n次
double mypow(double x, double n) {
	double res2 = 1.0;
	for (int i = 0; i < n; i++) {
		res2 = res2 * x;

	}
	return res2;
}

int main() {
	double X, N;
	cin >> X >> N;

	double result = 0;
	for (int i = 1; i <= N; i++) {
		result += mypow(-1, i - 1) * mypow(X, i) / fact(i);  //-1的n+1和n-1次方都是同理
	}

	//cout << fixed << setprecision(4) << result << endl;
	printf("%.4f", result);


	return 0;
}

你可能感兴趣的:(算法)