1082 - 重心在哪里

通过次数

0

提交次数

0

时间限制 : 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