在一個正n邊形(Regular Polygon)中,所有邊的邊長都相等,且所有角的度數相同(即這個多邊形是等邊、等角的)。
請從下列的抽象類shape類擴充出一個正n邊形類RegularPolygon,這個類将正n邊形的邊數n和邊長s作為私有成員,類中包含初始化邊數n和邊長s的構造函數。
class shape {// 形狀類
public:
double getArea() // 求面積
{return -1;}
double getPerimeter() // 求周長
{return -1;}
};
計算正n邊形的面積公式為: Area=n×a×a/(tan((180度/n))×4);
注意:需要将角度轉換成弧度後再計算三角函數。π取3.1415926
函數接口定義:
類名:RegularPolygon
裁判測試程式樣例:
#include <iostream>
#include <cmath>
using namespace std;
class shape {// 形狀類
public:
double getArea() // 求面積
{return -1;}
double getPerimeter() // 求周長
{return -1;}
};
/* 請在這裡填寫答案 */
//Your code will be embed-ed here.
int main()
{
int n;
double s;
cin>>n>>s;
RegularPolygon p(n,s);
cout<<p.getArea()<<endl;
cout<<p.getPerimeter()<<endl;
return 0;
}
輸入樣例:
在這裡給出一組輸入。例如:
5 3.3
輸出樣例:
在這裡給出相應的輸出。例如:
18.736
16.5
代碼
class RegularPolygon:public shape{
private:
int n;
double s;
public:
RegularPolygon(int nn, double ss):n(nn), s(ss)
{
}
double getArea(){
return n*s*s/(tan((3.1415926/n))*4);
}
double getPerimeter(){
return n * s;
}
};