程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> nyoj936螞蟻的難題(X)

nyoj936螞蟻的難題(X)

編輯:C++入門知識

nyoj936螞蟻的難題(X)


螞蟻的難題(X)

時間限制:1000 ms | 內存限制:65535 KB 難度:3
描述

螞蟻又遇到一個難題。

有一個圓錐,地面半徑為A(單位:cm),高度為H(單位:cm),現在螞蟻位於其中一條母線R與底面的交點P處,母線R的中點M有一袋旺仔小饅頭,餓極了的螞蟻非常想吃,而且,母線R的正對面有另一條母線L(位置如圖所示),上面布滿了香槟,思量之後螞蟻決定先取香槟,再拿小饅頭,最後回到P點。但是,問題來了,笨笨的螞蟻不知道要怎麼走了,因為懶惰的螞蟻肯定想最省體力,現在請你來寫個程序,幫助他找到其中走的最短距離是多少。

Ps:香槟得到一次即可。得到母線L、點M對應物品的方式為到達或經過。母線L兩端點處也有香槟。

(PI=3.1415926)

\

輸入有多組測試數據。
每組測試數據一行,由兩個數A,H組成。(0
輸出輸出最少消耗多少體力。
結果保留兩位小數。
樣例輸入
1 23 41000 1000
樣例輸出
4.4310.002828.43
來源流年
上傳者

ACM_安鵬程

數學問題:

注意圓錐角度可以》=180


#include
#include
#include
#include
#include
using namespace std;
#define PI 3.1415926
int main()
{
    double A,H,sum,c,dis,d;
    while(~scanf("%lf%lf",&A,&H))
    {
        d=sqrt(A*A+H*H);//muxian
        c=A/d*2*PI;//角度
        sum=sqrt(d*d*5/4-d*d*cos(A/d*2*PI))+d/2;//三角函數c*c=a*a+b*b-2a*b*cos(c);
        dis=2*d;
        if(c>=PI)
        printf("%.2lf\n",dis);
        else
        printf("%.2lf\n",sum);
    }
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved