拿到這個題目,我們首先會想到用循環來完成。
但並不是每個運算符都是“+”號。
所以,我們在這里要利用(-1)的i次方來進行“+”“-”號的控制。
再將循環變量i當作分母。
到這里我們對循環體的構思就基本ok了。
需要注意的是:這里的計算結果會以小數表示,所以並不能用int整型來定義變量。
代碼如下:
#include<stdio.h> #include<math.h> int main() { int i; float sum=0.0,temp=0.0; for (i = 1; i <= 100; i++) { temp = pow(-1, i + 1); sum = sum + temp * 1 / i; } printf("sum is %f\n", sum); system("pause"); return 0; }
代碼中用到了一個函數pow,
這個函數是用來表示次方的函數,所以需要引用頭文件math.h。
當然,我們不采用pow函數也一樣可以完成編程。
在循環體外,我們可以定義一個輔助變量flag,令flag=1。
循環體中,我們只需要在結束末尾令flag=-flag,
這樣就可以使flag在1和-1之間不斷轉變,從而完成編程。
代碼如下:
#include<stdio.h> int main() { int i, flag = 1; float sum = 0.0; for (i = 1; i <= 100; i++) { sum = sum + flag*(1.0 / i); flag = -flag; } printf("sum is %f\n", sum); system("pause"); return 0; }
最后附上程序運行的結果: