hdu 4218 模拟 根据一个圆点和半径画一个圆 注意半径要求

#include <stdio.h>
#include <math.h>
#include <string.h>

int r;

int abs(int a)
{
	if(a<0)
		return -a;
	return a;
}

int judge(int a,int b)
{
	int k=abs((r-a)*(r-a)+(r-b)*(r-b)-r*r);

	if(k<=3)
		return 1;
	else
		return 0;
}

int main()
{
	int t,i,j,u=1;

	scanf("%d",&t);

	while(t--)
	{
		scanf("%d",&r);

		printf("Case %d:\n",u++);

		for(i=0;i<2*r+1;i++)
		{
			for(j=0;j<2*r+1;j++)
			{
				if(judge(i,j))
					printf("*");
				else
					printf(" ");
			}
			printf("\n");
		}
	}

	return 0;
}

  

注意sqrt(3)=1.732050807568877293527446341505872366942805253810380628055806979451933016908800037081146186757248575675626141415406703029969945094998952478
81165551209437364852809323190230558206797482010108467492326501531234326690332288665067225466892183797122704713166036786158801904998653737985
9389467650347506576051

注意sqrt的消去,注意精度的保持

 

posted @ 2012-04-28 23:25  shijiwomen  阅读(263)  评论(0编辑  收藏  举报