题意很简单,给定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; }