Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Circumscribed Circle of a Triangle"
https://onlinejudge.u-aizu.ac.jp/problems/0010
・外接円
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume0 - 0010 : Circumscribed Circle of a Triangle
/* Aizu Online Judge in C++ #Volume0 - 0010 : Circumscribed Circle of a Triangle https://onlinejudge.u-aizu.ac.jp/problems/0010 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; while(n--){ double x1,y1,x2,y2,x3,y3; cin>>x1>>y1>>x2>>y2>>x3>>y3; double a,b,c,d,e,f,px,py,r; a=2.0*(x2-x1); b=2.0*(y2-y1); c=x1*x1+y1*y1-x2*x2-y2*y2; d=2.0*(x3-x1); e=2.0*(y3-y1); f=x1*x1+y1*y1-x3*x3-y3*y3; px=(b*f-c*e)/(a*e-b*d); py=(c*d-a*f)/(a*e-b*d); r=sqrt((px-x1)*(px-x1)+(py-y1)*(py-y1)); printf("%.3lf %.3lf %.3lf\n",px,py,r); } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/