20220326-sqrt()简单的实现
sqrt()的简单实现,分成了两部分:
第一部分为int型(输入为整数,输出为整数,如果结果为小数结果不输出)
第二部分为double型(输入为整数或小数,输出为小数,结果为小数和整数都输出)
第一部分为int型
(输入为整数,输出为整数,如果结果为小数结果不输出),代码如下:
int nu,b1,b12,j=0,jj=0; //nu为被开整数,b1为nu的一半,b12为b1的平方
printf("please input a number(int)\n");
//scanf("%d",&nu);
while(1)
{
scanf("%d",&nu);
if(nu<0) //暂时只能输入大于零的数
{
printf("enter error please re-enter\n");
}
else
{
break;
}
}
if(nu<0) //暂时只能开大于零的整数
{
break;
}
b1=nu/2;b12=b1*b1;
if(b12==nu) // 判断nu一半的平方是否等于nu 从到b1
{
printf("sqrt(nu)=%d\n",b1);
}
else if(b12>nu) //如果nu一半的平方大于nu,则从0到b1,开始遍历
{
while(j<b1)
{
jj=j*j;
if(jj==nu) //判断遍历的平方是否相等
{
printf("sqrt(nu)=%d\n",j);
break;
}
j++;
}
printf("the number you entered has no integer solution"); //结果为小数输出这个
}
else //判断平方小于nu的情况,从b1到nu
{
j=b1;
while(j<nu)