大佬求助

B3957 [GESP202403 三级] 完全平方数

违规用户名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

谢谢大佬,大佬无敌,大佬最牛


|