

Đề bài
Nhập vào 1 mảng số nguyên a có n phần tử. Tính trung bình cộng các số chính phương trong mảng
Dữ liệu vào
Gồm 1 dòng chứa các số nguyên, mỗi số cách nhau 1 dấu cách.
Dữ liệu ra
Trung bình cộng các số chính phương trong mảng, làm tròn đến 1 chữ số thập phân (nếu không có số chính phương nào thì in -)
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include<bits/stdc++.h>
using namespace std;
int scp(int a){
int k = sqrt(a);
return (k*k==a);
}
int main(){
int a;
cin>>a;
int b[a];
int cnt=0;float sum=0;
for(int i = 0; i<a;i++){
cin>>b[i];
if(scp(b[i])){
sum+=1.0*b[i];
cnt++;
}}
if(cnt==0){
cout<<-1<<endl;
}else{
cout<<sum/cnt;
}
}
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll cp(ll n)
{
ll k=sqrt(n);
return k*k==n;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
ll n,a[100000],tong=0,dem=0;
cin>>n;
for(ll i=0;i<n;++i)
{
cin>>a[i];
if(cp(a[i]))
{
dem++;
tong+=a[i];
}
}
if(dem==0) {cout<<"-";}
else {cout<<fixed<<setprecision(1)<<(float)tong/dem;}
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin