用C語言實現:計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。


拿到這個題目,我們首先會想到用循環來完成。

但並不是每個運算符都是“+”號。

所以,我們在這里要利用(-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;
}

最后附上程序運行的結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM