题目链接:
BestCoder #82 Div2 1001 ztr loves math
题意:
ztr喜欢研究数学,一天,他在思考直角三角形方程组的Lower版,即
n=x2−y2
,他想知道,对于给出的n,是否会有正整数解。
分析:
打表找规律。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <climits>
#include <cmath>
#include <ctime>
#include <cassert>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0)
using namespace std;
int ans[1000000];
void test()
{
int total=0;
for(int i=1;i<1000;i++){
for(int j=1;j<i;j++){
ans[total++]=i*i-j*j;
}
}
sort(ans,ans+total);
int res=unique(ans,ans+total)-ans;
for(int i=0;i<res;i++){
printf("%d\n",ans[i]);
}
}
int main()
{
IOS;
//freopen("A.in","r",stdin);
//freopen("A.out","w",stdout);
//test();
long long n;
int T;
scanf("%d",&T);
while(T--){
scanf("%I64d",&n);
if(n<10){
if(n==3||n==5||(n>=7&&n<=9)){
printf("True\n");
}else {
printf("False\n");
}
continue;
}
if((n-10)%4==0){
printf("False\n");
}else {
printf("True\n");
}
}
return 0;
}

本文探讨了直角三角形方程组n=x^2-y^2的求解方法,通过打表的方式寻找正整数解,并提供了一段C++代码实现。文章最后给出了一个快速判断给定n是否有解的算法。
&spm=1001.2101.3001.5002&articleId=51288696&d=1&t=3&u=c53e35c8c95841f1b7a0dc293e8983ef)
883

被折叠的 条评论
为什么被折叠?



