1082 - 重心在哪里
时间限制 : 1 秒
内存限制 : 32 MB
每个人都知道牛顿发现万有引力的故事。自从牛顿发现万有引力后,人们用万有引力理论解决了非常多的问题。不仅如此,我们也知道了每个物体都有自己的重心。
现在,给你三角形三个顶点的坐标,你能计算出三角形的重心吗?
题目输入
题目包含多组测试数据。第一行输入一个正整数n,表示测试数据的个数,当n=0时,输入结束。
接下来n行,每行包含6个数字x1,y1,x2,y2,x3,y3,表示三角形三个顶点的坐标。
题目输出
对于每组输入,输出重心的坐标,结果保留1位小数。
输入/输出样例
输入格式
2 1.0 2.0 3.0 4.0 5.0 2.0 1.0 1.0 4.0 1.0 1.0 5.0 0
输出格式
3.0 2.7 2.0 2.3
C语言解答
#include<stdio.h> int main() { int n; double x1,x2,x3,y1,y2,y3; while(scanf("%d",&n)!=EOF,n) { while(n--) { scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3); printf("%.1lf %.1lf\n",(x1+x2+x3)/3,(y1+y2+y3)/3); } } return 0; }
C++解答
#include<stdio.h> int main() { int n; double x1,x2,x3,y1,y2,y3; while(scanf("%d",&n)!=EOF,n) { while(n--) { scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3); printf("%.1lf %.1lf\n",(x1+x2+x3)/3,(y1+y2+y3)/3); } } return 0; }
Java解答
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); while(in.hasNextInt()){ int n=in.nextInt(); if(n==0) break; double[] x=new double[3]; double[] y=new double[3]; for(int i=1;i<=n;i++){ double ave1=0,ave2=0; for(int j=0;j<3;j++){ x[j]=in.nextDouble(); y[j]=in.nextDouble(); } for(int k=0;k<3;k++){ ave1+=x[k]; ave2+=y[k]; } ave1=ave1/3.0; ave2=ave2/3.0; System.out.printf("%.1f",ave1); System.out.print(" "); System.out.printf("%.1f\n",ave2); } } } }
Python解答
while True: n = input() if n == 0:break while n: (x1,y1,x2,y2,x3,y3)=raw_input().split() grav_x=(float(x1)+float(x2)+float(x3))/3 grav_y=(float(y1)+float(y2)+float(y3))/3 print round(grav_x,1),round(grav_y,1) n -= 1 if n == 0:break