洛谷P1163銀行貸款(經典二分答案入門題)

2022-06-24 15:06:08 字數 1065 閱讀 4998

跟最大值最小化(最小值最大化)略有不同,列舉利率滿足=0剛好還完即可(坑點,浮點數有精度誤差,控制好),但大致上一樣。(其實我是先寫暴力列舉再改為二分列舉的。。)

注意幾點

1.經濟學常識,利率累加每月的額外支付不一樣(明白那個計算公式相當於judge函式)。

2.找到乙個滿足的就可以退出,不用再像最小值最大化再向右嘗試了。

3.控制好精度問題,<0.001有個wa,<0.0001即可

4.和那個問題不同,可能過程中沒有break直到最後退出,這時特判一下=r或l即可

1 #include 2 #include 3

using

namespace

std;45

intmain()6

27else

283233}

34if(l>r) ans=r;35

36 cout<3738

return0;

3940 }

與之相似的還有小車問題

該題2種解法:

1.數學列解方程(有些不太好想方程不太好列,不推薦)

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;67

intmain()

8

2.列舉答案二分(無腦列舉x點位置再控制精度即可,推薦簡單)(比較鍛鍊**能力和思維能力==要的就是這種分析解決問題的能力)

1 #include 2 #include 3

using

namespace

std;45

intmain()6

28else

293334}

35//

if(l>r) ans=r;

3637

//cout<38

double p=ans/b+(s-ans)/a;

39 cout4041

42return0;

43 }

完。

洛谷 P1163 銀行貸款

當乙個人從銀行貸款後,在一段時間內他 她 將不得不每月償還固定的分期付款。這個問題要求計算出貸款者向銀行支付的利率。假設利率按月累計。輸入格式 輸入檔案僅一行包含三個用空格隔開的正整數。第乙個整數表示貸款的原值,第二個整數表示每月支付的分期付款金額,第三個整數表示分期付款還清貸款所需的總月數。輸出格...

P1163 銀行貸款

當乙個人從銀行貸款後,在一段時間內他 她 將不得不每月償還固定的分期付款。這個問題要求計算出貸款者向銀行支付的利率。假設利率按月累計。三個用空格隔開的正整數。第乙個整數表示貸款的原值,第二個整數表示每月支付的分期付款金額,第三個整數表示分期付款還清貸款所需的總月數。乙個實數,表示該貸款的月利率 用百...

P1163 銀行貸款(題目的題解,易理解)

p1163 銀行貸款 題目描述 當乙個人從銀行貸款後,在一段時間內他 她 將不得不每月償還固定的分期付款。這個問題要求計算出貸款者向銀行支付的利率。假設利率按月累計。輸入格式 三個用空格隔開的正整數。第乙個整數表示貸款的原值,第二個整數表示每月支付的分期付款金額,第三個整數表示分期付款還清貸款所需的...