hdu 3422 Triangle - 本原勾股数组 (st,(s^2-t^2)/2,(s^2+t^2)/2)

来源:互联网 发布:百鸡问题的最简单算法 编辑:程序博客网 时间:2024/05/16 05:56

题意很简单,给定n,求4*(1+..+n)为直角三角形一直角边长的三角形中,周长最小的三角形的斜边和(周长-3),且三边长为整数且三边长无公因子。 ps:因为题目中说是摆小球,所以周长会吧三个顶点都算了两遍。

首先4*(1+...+n)=2n^2+2n,如果一个直角三角形三边长为整数且无公因子,则三个数为本原勾股数组,其通项为(st,(s^2-t^2)/2,(s^2+t^2)/2),所以推导过程如下:

#include <stdio.h>int main(){    long long i,j,n;    while(scanf("%I64d",&n)!=EOF)    {        printf("%I64d %I64d\n",4*n*n+6*n-1,2*n*n+2*n+1);    }    return 0;}