解决问题
编写程序,输出 1~1000 之间所有的完全平方数。
代码实现
# include <stdio.h>
# include <math.h> //要用sqrt()
int main(void)
{
int i; //循环变量
int x; //存储每个数的二次方根
for (i=1; i<1000; ++i)
{
x = sqrt(i); /*如果i不是完全平方数, 那么sqrt(i)肯定是小数, 而i是int型, 所以x是sqrt(i)取整后的值, 这样x*x肯定不等于i*/
if (x*x == i)
{
printf("%d\t", i); // \t是跳到下一个Tab位置
}
}
printf("\n");
return 0;
}
输出结果是:
1 4 9 16 25 36 49 64 81 100
121 144 169 196 225 256 289 324 361 400
441 484 529 576 625 676 729 784 841 900
961
知识点拓展
其实这个程序还有更简单的算法,不需要使用 sqrt()。下面将这个程序也写下来:
# include <stdio.h&g