在c语言中,怎么判断一个数是否为完全平方数?

如题所述

一、数学概念:

完全平方即用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数

能表示成某个整数的平方的形式,则称这个数为完全平方数。

二、算法设计:

根据概念,只要存在一个整数m,使得m*m的值为n,那么n就是完全平方数了。

于是只需要对可能的m进行遍历,即可得到n是否为完全平方数的结论了。

三、参考代码:

#include <stdio.h>
int main()
{
    int n,m;
    scanf("%d",&n);//输入n值。
    m = 1; //初始为最小值。
    while(m*m<n) m++;//m自加,一直到m*m>=n时退出循环。
    //此时有两种可能,一种m*m与n相等,则为完全平方数;另一种则是m*m>n, æ­¤æ—¶ä¸å­˜åœ¨ä½¿å¾—m*m=n成立的m值,n不是完全平方数。
    if(m*m==n) printf("%d æ˜¯å®Œå…¨å¹³æ–¹æ•°\n", n);
    else printf("%d ä¸æ˜¯å®Œå…¨å¹³æ–¹æ•°\n", n);//输出结果。
    return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-02
计算这个数的平方根sqrt(),判断平方根是否为整数即可。本回答被提问者采纳
第2个回答  2014-11-02
遍历所有小于它的数 看是否某个数的平方等于他
相似回答