不失微笑 发表于 2017-8-5 23:34:52

输出所有形如aabb型的4位完全平方数

#include<stdio.h>
#include<math.h>
int main()
{
int i,j;
int n,m;
for(i=1;i<=99;i++)
{
        for(j=1;j<99;j++)
        {
                n=i*1000+j;
                m=floor(sqrt(n)+0.5);//一直搞不明白+0.5是干嘛的,能有大神给我举例说说嘛?衷心感谢
                if(m*m==n)
                {printf("%d",n);}
        }

}
return 0;
}

丶忘却的年少o 发表于 2017-8-6 11:52:43

没想到你发了2次呀{:10_258:}在另一个你发的帖子里已经回复了{:10_281:}

A_Elite 发表于 2017-8-6 12:54:00

+0.5呢,是起到四舍五入的作用。c语言中sqrt原型:double sqrt(double);也就是说sqrt会返回一个double类型的数据。而floor函数起到的作用是向下取整。floor(3.14) = 3.0,floor(9.999999) = 9.0,floor(-3.14) = -4.0,floor(-9.999999) = -10。如果sqrt()返回了1~1.4之间的值那加上0.5为1~1.9,经过floor函数处理向下取整结果就为1。而如果sqrt()返回了1.5~2之间的值那加上0.5为>=2的值,经过经过floor函数处理向下取整结果就为2了。所以+0.5只不过是起到四舍五入的作用而已。
页: [1]
查看完整版本: 输出所有形如aabb型的4位完全平方数