任意给一个非负整数,计算并返回X的算术平方根
值保留整数部分,小数部分将舍去
解题思路:
从1开始一个一个的找,直到找到第一个相乘的结果大于这个非负整数
那么这个前一个数就是它平方根的整数部分
解题依据:
int i=17;
1 x 1 = 1 <17
2 x 2 = 4 <17
3 x 3 = 9 <17
4 x 4 = 16 <17
5 x 5 = 25 >17
此时有一个数大于17,那么这个的前一个数就是它平方根的整数部分
也就是 4 是 17 的平方根的整数部分
再来看一个例子:
int i=16;
1 x 1 = 1 <16
2 x 2 = 4 <16
3 x 3 = 9 <16
4 x 4 = 16 ==16
5 x 5 = 25 >16
请注意:此时4的相乘结果等同与16,但是我们需要寻找的数是大于16的数
此时有一个数大于16,那么这个的前一个数就是它平方根的整数部分
也就是 4 是 16 的平方根的整数部分
代码如下:
int main(){
//1.定义一个数
int number = 17;
//2.从1开始找平方根的整数部分
int i = 1;
//3.利用while循环
while (i * i < number) {
i++;
}
//4.循环结束,表示已经找到 i的前一个,-1就行
printf("number的平方根是:%d\n", i - 1);
}
效果图如下: