如何在C语言中定义数字是否为正方形?如找到任何正整数的平方根,我们在sqrt()
头文件中编写的C语言中使用<math.h>
函数。
假设我们必须找到正整数x的平方根。该程序将使用C语言。
#include <stdio.h>
#include <math.h>
int main()
{
int x;
double sq;
scanf("%d", &x);
sq = sqrt(x);
printf("%0.2f\n", sq);
return 0;
}
像这样,那么现在找出一个数字是否是平方数的最佳方法是什么?
答案 0 :(得分:1)
获得平方根后,将结果转换为int
,这将截断任何小数分量。然后将该数字乘以其自身,并检查它是否等于原始数字。
int x = // some nonnegative number
double sq = sqrt(x);
int sq_int = (int)sq;
if (sq_int * sq_int == x) {
print("%d is a square\n", x);
} else {
print("%d is not a square\n", x);
}
例如,如果x
为9,则sq
为3.0。因此sq_int
设置为3,因为3 * 3 == 9
为真,所以它会打印9 is a square
。
如果x
为10,则sq
为3.162277 ....因此sq_int
设置为3(因为小数部分被截断),并且3 * 3 == 10
如果是假的,它会打印10 is not a square
。
答案 1 :(得分:1)
#include <stdio.h>
#include <math.h>
int main(void)
{
double x;
double sq;
scanf("%lf",&x);
sq = sqrt(x);
if( sq == (int)sq )
printf("sq is a root\n");
else
printf("sq is not a root\n");
return 0;
}