判断一个数的平方根是否为整数怎么做?
int m;
float n;
n=sqrt(m);
n%1.0==0?yes:no;
这样判断好像不行哎……怎么改呢?
[解决办法]
if(m * m) == n不就行了吗?如果不是整数,则是无穷的,由于精度原因,如果根不是整数,相乘后也不是整数
[解决办法]
if(m * m == n)
[解决办法]
int m;
float n;
n=sqrt(m);
int k = (int)n;
if (k*k == m)
//yes
else
//no
[解决办法]
要用整数判:
#include <stdio.h>#include <math.h>int main(){ int x,y; scanf("%d",&x); y=(int)sqrt(x); if (x==y*y) printf("ok\n"); else printf("no\n"); }