求1/1+2/1+3/2+5/3+8/5+13/8...一直到n的值,首先看到这个题基本上都能反应出要找规律,而一般找规律的都可以尝试用递推法先求出f(n),然后循环或者递归求和,但是这道题每一项的分子和分母都被拆分运算,因此无法运用递推法。然后找规律吧,第一次呢,我是推出第三项的分子等于前两项的分子之和,分母等于前两项的分母之和,但是写出程序之后发现程序十分不简洁,后来上网发现,后一项的分子等于前一项的分母、分子之和,后一项的分母等于前一项的分子这样的规律也是成立的,而且程序看上去更舒服,代码如下:
1 int k,n; 2 float num =0; 3 //分子、分母 4 double i = 1,j = 1; 5 double temp; 6 printf("请输入所要求的项数:"); 7 scanf("%d",&n); 8 for(k = 1;k<= n;k++) 9 { 10 //这里思考有卡壳 11 num += i / j; 12 temp = i; 13 i =i + j; 14 j =temp; 15 } 16 //保留三位小数 17 printf("%.3lf",num); 18 system("pause"); 19 return 0;