输出所有形如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;
} 没想到你发了2次呀{:10_258:}在另一个你发的帖子里已经回复了{:10_281:} +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]