裁缝大师题解

思路:

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;
}
全部评论

相关推荐

能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务