违规用户名fU^%v6mL @ 2024-10-07 16:03:42
#include<bits/stdc++.h>
using namespace std;
bool f(int x){
for(int i=1;i<=x;i++){
if(i*i==x){
return true;
}
}
return false;
}
int main(){
int n;
cin>>n;
int t=0;
int a[1001];
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int x=a[i]+a[j];
if(f(x)){
t++;
}
}
}
cout<<t;
return 0;
}
样例一输出一直是6,不知道哪错了
by CheeseFunction @ 2024-10-07 16:24:25
你把j改成j=i+1再试试
by hiebb @ 2024-10-07 16:25:08
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int t=0;
int a[1001];
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++){
int x=a[i]+a[j];
if(pow((int)sqrt(x),2)==x) t++;//不然有可能T
}
}
cout<<t;
return 0;
}
by hiebb @ 2024-10-07 16:29:14
别信上面那个,我比他快
by 违规用户名fU^%v6mL @ 2024-10-09 21:06:00
谢谢两位大佬,我已领悟,感谢!!!
by wx1234567899 @ 2024-10-11 10:18:52
谢谢大佬,大佬无敌,大佬最牛