php用重写算出圆柱体的体积,枚举测试用例Cylinder(圆柱体)(枚举)
廢話就不多說了,開始。。。
1525:?Cylinder(圓柱體)
Time?Limit:1?SecMemory?Limit:128?MBSubmit:14Solved:4
Description
使用鉸剪和一張紙,根據下面的步驟,可以剪出兩個面來構成一個圓柱體:
1?平行于最短邊把紙剪成兩個長方形;
2?在第一長方形上,剪一個具有最大半徑的圓,這個圓構成圓柱體的底.
3?卷起第二個長方形,使它的周長等于上一步驟中圓的周長?,并把圓桶的一端與圓粘在一同.(為了使卷起的圓桶的周長等于圓的周長,它可以有重疊的部份).給出紙張的寬度和高度,你能計算出通過上述方法做出的圓柱體的最大體積嗎?
Input
輸入包括幾個測試用例,每一個測試用例包括兩個數wandh(1?≤?w?≤?h?≤?100),表示紙張的寬度和高度,最后一個測試用例后有兩個0.
Output
對每一個測試用例,打印一行最大可能的圓柱體體積,通過四舍五入保留三個小數
Sample?Input
10?10?10?50?10?30?0?0
Sample?Output
54.247?785.398?412.095
HINT
PI?=?3.141593
Source
每日一道理
只有啟程,才會到達理想和目的地,只有拼搏,才會獲得輝煌的成功,只有播種,才會有收獲。只有追求,才會品味堂堂正正的人。
Anything?about?the?Problems,?Please?Contact?Admin:admin
剖析:誰知道我一看到這道題就馬上想到了數學里的函數求最大值來著。還列列了方程求導,求根等等,越想越�嗦。最后把這最簡略的一道標題給錯過了
其實只要枚舉一下情況就能夠了
h-2*r1
?????情況一?????ww
r1=min(w/2.0,h/(2*pi+2));v1=pi*r1*r1*wl;
情況二??????????????h-2*r2
???????????????w
r2=w/(2*pi)?,v2=pi*r2*r2*(h-2*r2);
//wronganswer:錯的原因是因為標題沒有看清楚,我把兩種切法都考慮進去了,而標題只要求第一種切法
#include?
#include?
#include?
#include?
using?namespace?std;
const?double?pi=?2.0*acos(0.0);
double?max(double?a,double?b)
{
return?a>b??a:b;
}
double?min(double?a,double?b)
{return?a
}
double?volume(double?r,double?h)
{
return?pi*r*r*h;
}
int?main()
{freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
double?w,h;
double?r1,r2,v1,v2,t;
while(scanf("%lf%lf",&w,&h)!=EOF)
{??if(w==0&&h==0)
break;
//r1=min(h/(2.0*pi+2.0),w/2.0);//豎切
v1=volume(r1,w);
r2=w/(2.0*pi);
v2=volume(r2,h-2.0*r2);
//printf("r1=%.3lf?v1=%.3lf,r2=%.3lf,v2=%.3lf\n",r1,v1,r2,v2);
t=max(v1,v2);
r1=w/(2.0*pi+2.0);//橫切
v1=volume(r1,h);
r2=h/(2.0*pi);
v2=volume(r2,w-2.0*r2);
//?printf("r1=%.3lf?v1=%.3lf,r2=%.3lf,v2=%.3lf\n",r1,v1,r2,v2);
t=max(t,max(v1,v2));
printf("%.3lf\n",t);
}
return?0;
}
//accept
#include?
#include?
#include?
#include?
using?namespace?std;
const?double?pi=?2.0*acos(0.0);
double?max(double?a,double?b)
{
return?a>b??a:b;
}
double?min(double?a,double?b)
{return?a
}
double?volume(double?r,double?h)
{
return?pi*r*r*h;
}
int?main()
{
double?w,h;
double?r1,r2,v1,v2,t;
while(scanf("%lf%lf",&w,&h)!=EOF)
{??if(w==0&&h==0)
break;
r1=min(h/(2.0*pi+2.0),w/2.0);//豎切,即沿著h處切
v1=volume(r1,w);
r2=w/(2.0*pi);
v2=volume(r2,h-2.0*r2);
printf("%.3lf\n",t);
}
return?0;
}
文章結束給大家分享下程序員的一些笑話語錄: 神燈新篇
一個程序員在海灘上發現了一盞神燈。他在燈上擦了幾下,一個妖怪就從燈里跳出來說:“我是世界上法術最強的妖怪。我可以實現你的任何夢想,但現在,我只能滿足你一個愿望。”程序員攤開了一幅中東地圖說:“我想讓中東得到永久的和平。”妖怪答道:“哦,我沒辦法。自打創世紀以來,那里的戰火就沒有停息過。這世上幾乎沒有我辦不到的事,但這件事除外。”程序員于是說:“好吧,我是一個程序員,為許多用戶編寫過程序。你能讓他們把需求表述得更清楚些,并且讓我們的軟件項目有那么一兩次按進度按成本完成嗎?”妖怪說:“唔,我們還是來看中東地圖吧。”
--------------------------------- 原創文章 By
枚舉和測試用例
---------------------------------
總結
以上是生活随笔為你收集整理的php用重写算出圆柱体的体积,枚举测试用例Cylinder(圆柱体)(枚举)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云南大学02届计算机系,云南大学学生获得
- 下一篇: 【pandas】结合泰坦尼克生还分析讲讲