本文主要是介绍绕钉子的长绳子C语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。(题目来源洛谷)
题目描述
求出绳子的长度
输入格式
第1行两个数:整数N(1<=N<=100)和实数R。
接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100。
输出格式
一个数,绳子的长度,精确到小数点后2位。
代码及运行结果如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>int main()
{int n,r,i;float x[100],y[100];double l=0.0,m,c;scanf("%d %d",&n,&r);for(i=0;i<n;i++){scanf("%f %f",&x[i],&y[i]);}for(i=0;i<n-1;i++){l=l+sqrt((x[i]-x[i+1])*(x[i]-x[i+1])+(y[i]-y[i+1])*(y[i]-y[i+1]));}m=sqrt((x[n-1]-x[0])*(x[n-1]-x[0])+(y[n-1]-y[0])*(y[n-1]-y[0]));l=l+m;c=((2*3.14*r)/n)*n;l=l+c;printf("%.2f\n",l);return 0;
}
运行结果:
这篇关于绕钉子的长绳子C语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!