/*已知一个数列从第0项开始的前三项分别为0、0、1,以
后的各项都是其相邻的前三项的和。下列给定程序中,
函数fun的功能是:计算并输出该数列的前n项的平方根
之和sum,n的值通过形参传入。
例如:当n=10时,程序的输出结果应为23.197745*/
#include <stdio.h>
#include <math.h>
double fun(int n)
{
double sum, s0, s1, s2, s;
int k;
sum = 1.0;
if (n <= 2) sum = 0.0;
s0 = 0.0;
s1 = 0.0;
s2 = 1.0;
for (k = 4; k <= n; k++)
{
s = s0 + s1 + s2;
sum += sqrt(s);
s0 = s1; s1 = s2; s2 = s;
}
return sum;
}
int main()
{
int n;
scanf_s("%d", &n);
printf("%lf\n", fun(n));
return 0;
}
运行结果