用了5小时。做了个然而并没有什么实用的乘法算法
mfp吧
全部回复
仅看楼主
level 8
xxqoZXY 楼主
help
@language:simplified_chinese
乘法算法的。安回车键换行继续运行直到最终结果的到来
@end
endh
function x(a,b)
variable n=a,p=b,c,d,f,x,y,h,j,z,o,k,l,m,q,u,w,e1,i1,e2
if a<0
n=-n
else
n=n
endif
if p<0
p=-p
else
p=p
endif
x=floor(n)
y=floor(p)
c=n-x
d=p-y
f=1
z=0
k=0
l=0
m=0
h=10
e1=0
e2=0
i1=0
while f<=y
z=z+x
f=f+1
loop
//xy=z
pause("z="+z)
while c>floor(c)
c=10*c
k=k+1
loop
//暂未找到10*的替代算法
while d>floor(d)
d=10*d
l=l+1
pause("l="+l)
loop
j=0
f=1
while f<=x
j=j+d
f=f+1
loop
pause("j="+j)
//xd=j
f=1
while f<=y
e1=e1+c
f=f+1
loop
pause("e1="+e1)
//cy=e1
f=1
while f<=d
i1=i1+c
f=f+1
loop
pause("i1="+i1)
//dc=i1
f=1
while f<=x
e2=e2+d
f=f+1
loop
pause("e2="+e2)
//dy=e2
pause("k="+k)
pause("l="+l)
if k==0
e1=0
else
e1=e1/10**k
endif
//暂未找到替代10**的算法
if l==0
e2=0
else
e2=e2/10**l
endif
w=k+l
if (k=0|l=0|i1=0)
i1=0
else
i1=i1/10**w
endif
pause("last z="+z)
pause("last e1="+e1)
pause("last e2="+e2)
pause("last i1="+i1)
m=z+e1+e2+i1
if and(a>0,b>0)
m=m
else
endif
if and(a<0,b>0)
m=-m
else
endif
if and(a>0,b<0)
m=-m
else
endif
if and(a<0,b<0)
m=m
else
endif
return m
endf
2015年10月11日 04点10分 1
1