輸入三個數字k,d,t,分別表明微波爐自動關的時間、Julia回來的間隔(若是關了就從新打開)、進程須要時間,若是在微波爐開的時候加熱效率就是1:1,關的時候效率是1:2,問你最少須要多少妙才能完成加熱。three
這題是以能覆蓋k的d的倍數爲週期(這裏值得複習),而後分開再處理餘數部分就好了下面是代碼進程
#include<cstdio> typedef long long ll; #define eps 1e-10 double k,d,t; int main() { while(scanf("%lf%lf%lf",&k,&d,&t)!=EOF) { double ti=(long long)((k-1)/d)+1;//恰好覆蓋的d的倍數 double p=ti*d;//一個週期的長度 double ans=0; double tim=(long long)(2*t/(p+k));//p+k爲了對應2*t ans+=tim*p; double rest=2*t-(p+k)*tim; if (rest<2*k) ans+=rest/2; else ans+=k,ans+=rest-2*k; printf("%.1lf",ans); } }