裁缝大师题解
思路:
1.求圆上的若干个点
2.由于是正多边形,每个点与圆心的角度相同,可以把圆分解成n块
3.圆上的坐标可以用圆心的坐标+半径*cos(rad)/sin(rad)来得到。而rad可以根据等份来划分。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const double pi=acos(-1.0);
const double eps=1e-9;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
double x,y,r,n;
scanf("%lf%lf%lf%lf",&x,&y,&r,&n);
for(int i=(int)n;i>=1;i--)
{
double xa=cos((1.0*i/n)*2*pi);
double ya=sin((1.0*i/n)*2*pi);
double ans1=x+xa*r;
double ans2=y+ya*r;
if(fabs(ans1)<eps)
{
ans1=0.0;
}
if(fabs(ans2)<eps)
{
ans2=0.0;
}
printf("%.2f %.2f\n",ans1,ans2);
}
}
return 0;
}

