這坑貨 (迭代+迭代終止條件(由誤差控制))

lllx___發表於2017-12-23

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 131072K,其他語言262144K
64bit IO Format: %lld
題目描述
qwb閒著無聊,就開始拆自己的電腦,他發現主機板上某個元件可以視作如圖所示無限長的電路。已知該電路由三種不同的電阻r1,r2,r3構成,他想要計算ab之間的電阻。

輸入描述:
第一行輸入一個整數T,表示資料組數,
接下來T行,每行三個整數r1,r2,r3。
輸出描述:
每組資料輸出一行,保留兩位小數。
示例1
輸入

2
1 1 1
1 2 3
輸出

2.73
5.46
備註:
T≤104,
1≤r1,r2,r3≤104

#include<stdio.h>
int main(){
    int t;
    scanf("%d\n",&t);
    while(t--){
        int r1,r2,r3;
        scanf("%d%d%d",&r1,&r2,&r3);
        double f=r2;
        double ff=f;
        for(int i=1;;i++){
            f=(1.0*(r1+r3+ff)*r2)/(1.0*(ff+r1+r2+r3));
            if(ff-f<0.0000001) break;//要誤差小於1e-7
            ff=f;
        }
        f+=(r1+r3);
        printf("%.2lf\n",f);
    }
    return 0;
}

相關文章