观察规律
m/n m+n变为m, m变为n
至于负号可以在循环中用用一个flag标志位改变
# include "stdio.h"
int main()
{
int m = 2;
int n = 1;
double sum = 0.0;
for(int i=0; i<10; i++)
{
int flag = 1;
sum+ = flag * (double)m/n;
int tmp = m;
m = m + n;
n = tmp;
flag = -flag;
}
printf("%lf", sum);
return 0;
}
注意这里的强制类型转换
(double)m/n
而不是(double)(m/n)
仔细思考即可得为什么(double)(m/n)不行