我失败的尝试:
#include <stdio.h>
#include <math.h>
#include <locale.h>
int main() {
setlocale(0, "");
unsigned int n;
float x;
float y = 0;
printf("Задайте числа n и x:\n");
scanf("%u%f", &n, &x);
int k;
for (k = 1; k <= n; ++k)
{
y += (k / k + 1) - powf( cosf( fabsf(x)), k);
}
printf("%f\n", y);
return 0;
}
失败是因为 递归计算比每次迭代的计算更优化(这是我得到它的唯一方法)。如何重写此代码以便递归进行计算?
首先,让我们转换系列:
好吧,然后计算它是无稽之谈,特别是如果你记得
cos
- 函数是偶数:):注意分数中的括号,不像你的
(k / k + 1)
,它总是 2,以及 1 附近的点(这样除法不是整数)。是的,在写作时,您添加了重复的需要。好吧,那么我们递归地考虑这个系列......
有可能(总的来说,有必要:))在
cos(x)==1
.另外的选择...