为什么只对一个点?

B3957 [GESP202403 三级] 完全平方数

luolie0804 @ 2024-06-09 10:10:16

#include<bits/stdc++.h>
#define F(x,y,z,o) for(int o=x;o<=y;o+=z)
using namespace std;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int n;
    cin>>n;
    int a[10005];
    F(1,n,1,i)
    {
        cin>>a[i];  
    } 
    int ans=0;
    F(1,n-1,1,i)
    {
        F(i+1,n,1,j)
        {
            if(sqrt(a[i]+a[j])*sqrt(a[i]+a[j])==a[i]+a[j]) ans++;
        }
    }
    cout<<ans;
    return 0;
}

by WYZ20030051 @ 2024-06-09 10:33:39

@luolie0804 sqrt 的返回值是 double 类型,而 a[i]+a[j] 这一部分是 int 类型,你应该把符号类型统一一下


by luolie0804 @ 2024-06-09 20:00:03

@WYZ20030051 AC了,谢谢大佬!


|