前 n 項求和
-
算法思路:
1、前n項求和由於第一項和最後一項都已知適合用for循環。
2、當n趨於無窮時,調和數列的極限趨於無窮。 -
代碼如下:
#include<stdio.h>
int main()
{
int i;
int n;
double sum=0;
scanf("%d",&n);
for(i=1;i<n;i++){
sum+=1.0/i;
}
printf("f(%d) is %f\n",n,sum);
return 0;
}
代碼輸出:
50
f(50) is 4.479205
--------------------------------
Process exited after 9.289 seconds with return value 0
請按任意鍵繼續. . .
代碼分析:
這裏需要留意的就是當被除數爲浮點型數據、除數爲整形數據時,結果自動轉換爲浮點型數據;浮點型數據(float、double)均用%f表示。
前 n 項求和變式運算
#include<stdio.h>
int main()
{
int i;
int n;
double sum=0.0;
double sign=1.0;
scanf("%d",&n);
for(i=1;i<n;i++){
sum+=sign*1.0/i;
sign=-sign;
}
printf("f(%d) is %f\n",n,sum);
return 0;
}
代碼輸出:
10
f(10) is 0.745635
--------------------------------
Process exited after 1.927 seconds with return value 0
請按任意鍵繼續. . .
代碼分析:
這裏對偶數項爲負號採取的是置換前一項負號,沒有用-1的n次方進行表達,比較簡潔。
調和數列簡介: