c大神看一下第二题????

 

不是,99的阶乘是认真的嘛?

double jc(int n)
{
	double a = 1;
	for (int i = 1; i <= n; i++)
		a *= i;
	return a;
}
void main()
{
	double d = 0;
	for (int i = 1; i <= 99; i += 2)
		d += jc(i);
	printf("%e", d);
}

 

先用循环求阶乘,再相加求和即可

sum是和,fact是阶乘

i<=97是因为目标数是99,我们每次都乘到i+2,所以i最大到97即可

int Result()
{
	int sum = 1, fact = 1;
        int i;
	for (i = 1; i<=97; i+=2)
	{
		fact *= (i + 1) * (i + 2);//等同于fact = fact * (i + 1) * (i + 2);
		sum += fact;//等同于 sum = sum + fact;
	}
	return sum;
}