題目連結: https://zerojudge.tw/ShowProblem?problemid=b004

# 內容

一頭牛正在牧場中吃草,而且這頭牛的鼻環穿過了一條綁在兩根柱子之間的繩子。由於環可以自由在繩子上移動,所以這頭牛相當於綁在這條繩子上的任何一個地方。你的工作是求出這頭牛可以吃多少面積的草。假設 pi = 2*cos-1 (0) (在這裡角度以弧度表示)。同時,你可以假設繩子不具寬度、牛視為一個點,並且柱子和環的寬度可以忽略。請你用 double 這種資料型態來進行浮點數的運算。

# 輸入

每列包含了兩個整數 D (0 <= D <= 1000) 以及 L (D < L <= 1500 )。第一個整數 D 代表兩根柱子之間的距離;第二個整數 L 代表繩子的長度。

# 輸出

對於每筆測試資料請輸出一列,包含一個浮點數,精確到小數以下第三位。這個浮點數代表了牛可以吃到的草地面積。

# 解題思路

長邊:L/2, 短邊:sqrt ((L/2 * L/2) - (D/2 * D/2)), 橢圓面積:pi * 長邊 * 短邊

可以使用 printf ("%.3f\n", x) 來顯示小數點後三位

使用 sqrt (平方根)、acos 前,必須先宣告 cmath

# 程式碼

#include <iostream>
#include <cmath>
#include <stdio.h>
using namespace std;
int main()
{
    double D,L,pi,area;
    while(cin >> D >>L)
    {   pi = 2*acos(0);
        area = pi*L/2*sqrt( (L/2)*(L/2) -(D/2)*(D/2) );
        printf("%.3f\n",area);
    }
    return 0;
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay