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

ural 1020. Rope(幾何)

編輯:C++入門知識

ural 1020. Rope(幾何)


題目鏈接:ural 1020. Rope

題目大意:按照順序給定N個點,每個點有半徑R,問說用線環繞N個點所需要的長度。

解題思路:因為需要圍成一個圈,所以旋轉角度一定是一周,板徑又都相同,所以直接就是兩兩點之間的距離加上一個周長。

#include 
#include 
#include 
#include 

using namespace std;
const int maxn = 105;
const double pi = 4 * atan(1.0);

int N;
double R, x[maxn], y[maxn];

double dis (double x, double y) {
    return sqrt(x * x + y * y);
}

int main () {
    while (scanf("%d%lf", &N, &R) == 2) {
        for (int i = 0; i < N; i++)
            scanf("%lf%lf", &x[i], &y[i]);
        x[N] = x[0], y[N] = y[0];
        double ans = 2 * pi * R;
        for (int i = 0; i < N; i++)
            ans += dis(x[i]-x[i+1], y[i]-y[i+1]);
        printf("%.2lf\n", ans);
    }
    return 0;
}

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