⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genhao.cpp

📁 牛顿迭代法开根号 比库函数sqrt()快
💻 CPP
字号:
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
using namespace std;
int main()
{
	double n,x1,divider=2.0;
	double p=0.414213562, q =0.594669914 ,sqrt2=1.414213562, one=1;
	double tmp;
	double y;
	double status=0;
    for(int i=1;i<=9;i++)
	{
		cin>> n; 
        status=0;
	_asm
	{
		finit
		fldz
		fld n
		fcomp 
		fstsw ax
		sahf
		jb out1
		
		fld one
		fstp status
	    ffree st(0)
		fld n
	    fxtract 
        fst tmp
		fmul p
		fadd q
		fstp x1
		fstp y

		mov cx,0003h
        loop1:    
		fld x1
		fld tmp
		fdiv st(0),st(1)
		fadd x1
		fdiv divider
        fstp x1
		dec cx
		jnz loop1
		
		fld divider
		fld y
        fprem 
		fld one
		fcomp 
	    fstsw ax
		sahf
		je next1
        
		fld y
		fdiv divider
		fld x1
		fscale
		fst x1
		jmp out1
       
        next1:
		fld y
		fdiv divider
        fld x1
		fmul sqrt2
        fscale
		fst x1

        out1:

	}
	if( status ==0)
		printf("-1.#IND00000000000\n");
	else
	    printf("%.15f \n",x1); 
	
	printf("%.15f \n",sqrt(n));
	}
	system("pause");
	return 0;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -