0
已解决
题目描述 Description
使用一个函数来判断这个数是否是完全平方数,即这个数能否被两个一样的数字相乘得到,如果是,则输出Yes,否则输出No。
输入描述 Input Description
输入一个数字n
输出描述 Output Description
输出Yes 或者 No
样例输入 Sample Input
9
样例输出 Sample Output
Yes
数据范围及提示 Data Size & Hint
1<=n<=1000
难道不是用 sqrt 就行了吗?
为什么是:

错误代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,n=0;
cin>>a;
n=sqrt(a);
if(n==0)
{
cout<<"No";
}
else cout<<"Yes";
return 0;
}
请各位大佬帮忙找错,谢谢!!!

黄品翔在2019-04-01 18:45:30追加了内容
80分代码:
#include<bits/stdc++.h>
using namespace std;
bool pd(int n)
{
for(int i=1;i<=n;i++)
{
if (n/i==i)
return true;
}
return false;
}
int main()
{
int n;
cin>>n;
if(pd(n))
{
cout<<"Yes";
}
else cout<<"No";
return 0;
}
@朱智霖
0
已采纳
pd中的代码改成:
for(int i=1;i<=sqrt(n);i++)
if(i*i==n)
return true;
return false;
Plus:我知道已经晚了,此问题发布已经10个多月了(手动滑稽)。
0
0
0
0
#include<iostream>
#include<cstdio>
using namespace std;
int n,a;
void f();
int main()
{
cin>>n;
f();
return 0;
}
void f(){
for(int i=1;i<=n;i++){
if(n==i*i){
cout<<"Yes";
return ;
}
}
cout<<"No";
}
0


