发布网友
共2个回答
热心网友
先来分析一下:
1:可以开出来是整数的,(例如9,开出来是3,那么就要 -1)
2:开出来不是整数,(例如8,开出来只要截取就可以了,所以可以直接强制转换)
(以上是纯原创的思路)
#include<stdio.h>
#include<math.h> //因为用到sqrt()函数,所以要这个数学库函数。
void main()
{
int n, m;
scanf("%d",&n);
m=(int)sqrt(n);
if(m==sqrt(n))
printf("%d",m-1);
else
printf("%d",m);
}
(另附上程序运行结果验证一下)
以上是基本程序,我可以再精简一下下~
如果这些都看懂了,还可以再上一点点技巧的东西(不过我觉得你可能是初学者,如果有兴趣可以一起继续探讨下去哈~)
热心网友
//输出<=根号n的数
#include <stdio.h>
#include <math.h>
int main()
{
int n, gen;
scanf("%d", &n);
gen = sqrt(n);
printf("%d\n", (int)gen);
return 0;
}
//输出小于根号n的数
#include <stdio.h>
#include <math.h>
int main()
{
int n, gen;
scanf("%d", &n);
gen = sqrt(n);
if (gen == (int)gen)
printf("%d\n", gen-1);
else
printf("%d\n", (int)gen);
return 0;
}