ZCMU——1079: 求1-1/3+1/5-1/7+...——數學題目中的找規律題目的做法——自加的寫法還有i++與++i的區別

目錄


題幹

題目描述

輸入一個正整數 repeat (0

輸入

見sample

輸出

見sample

樣例輸入

1
1E-4

樣例輸出

0.785348


源代碼

#include<stdio.h>
int main()
{
    int repeat;
    scanf("%d",&repeat);
    while(repeat--)
    {
        double eps;       //定義一個雙精度浮點型變量
        scanf("%lf",&eps);         //輸入
        double now=1.0,ans=0;     //初始化
        int i=1,j=0;              //初始化too
        while(now>=eps)           //如果eps比now大,輸出會有問題
        {
            if(j%2==0)           //這個if else是來判斷分數前面的符號的奇數爲正,偶數爲負
                ans=ans+now;
            else
                ans=ans-now;
            i=i+2;       //這種運算方式叫自加
            j=j+1;
            now=1.0/i;    //因爲i是整型變量,而1除任何一個整數都是零,所以在分子處用1.0,
                         //                1.0是浮點數,整個分數就也爲浮點數
        }
        printf("%.6f\n",ans);    //保留六位小數並輸出
    }
    return 0;
}
//ENDING

解題思路

終於有一道還算複雜的題了(雖然也還好)
自加有兩種寫法

i=i+2;

i+=2;

這兩種是一樣的
當然還有一種特殊的

i++;     //這是 i=i+1 的意思 

當然還有自減,自乘 等等
這裏順便提一下

i++;

++i;

的區別
它們的區別就在於是先調用變量 i ,還是先自加

#include<stdio.h>
int main()
{
    int i=0;
    printf("%d ",i++);
    printf("%d",++i);
}

這樣輸出 2 0 ,而

#include<stdio.h>
int main()
{
    int i=0;
    printf("%d ",++i);
    printf("%d",i++);
}

這樣輸出 1 1 。
不知道你明白了沒有
希望你喜歡這道題目還有我的解題思路!!!
如有問題請留言,謝謝!!!

>>>我的博客<<<


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章