Ray_0601 @ 2024-06-29 07:17:38
#include <bits/stdc++.h>
using namespace std;
int a[1010];
bool pf(int x)
{
if(sqrt(x) * sqrt(x) == x)
{
return true;
}
return false;
}
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
int cnt = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(pf(a[i] + a[j]))
{
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}
by 210101zhaosicheng @ 2024-06-29 07:32:56
@Ray_0601
第一个:读题仔细,是
第二个:sqrt开方开出来是浮点数,开过了以后要转换成int类型。
下面是AC代码:
#include <bits/stdc++.h>
using namespace std;
int a[1010];
bool pf(int x)
{
if((int)sqrt(x) * (int)sqrt(x) == x)
{
return true;
}
return false;
}
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
int cnt = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j < i; j++)
{
if(pf(a[i] + a[j]))
{
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}
by 210101zhaosicheng @ 2024-06-29 07:33:19
求壶关
by lzmzy_X1029 @ 2024-07-11 13:22:27
j=i+1 sqrt开根号转int 如int a=sqrt(a[i]+a[j]) 代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int a[1005];
int main(){
int n,ccnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
int x=a[i]+a[j];
int tmp=sqrt(x);
if(tmp*tmp==x){
ccnt++;
}
}
}
cout<<ccnt;
return 0;
}