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的消去,注意精度的保持