回 帖 发 新 帖 刷新版面

主题:最强的算法

1.不用/或\或mod写一个整数除法函数div1%()
function div1&(beichushu as long,chushu as long)
    dim i as long
    dim j as long
    i=beichushu
    do until i<chushu 
        i=i-chushu
        j=j+1
    loop
    div1%=j
end function
不知道大家看懂了没有,以前我确实写过这样的一个程序,不过是用汇编语言,试试看它的速度...
2.输出图形
*
***
*****
***
*
print "*"
print "***"
print "*****"
print "***"
print "*"
end
\待续...

回复列表 (共5个回复)

沙发

(1)这不就是以减法代替除法吗?谁都会。
不过在被除数很大,除数很小的时候速度就很慢。
(2)有本事不直接打印。
CLS
FOR i=-2 TO 2
    s=3-ABS(i)
    FOR j=1 TO s*2-1:PRINT "*";:NEXT j:PRINT
NEXT i
END

板凳

(2).我可以做到人性化,很简单:
cls
input n     'n代表总行数
m=n\2
for i=-m to m:?string$(n-abs(i),*):next i
end

3 楼

楼上的,你的程序出错了吧!
看我的:
CLS
INPUT N
M=N\2
FOR I=-M TO M
 PRINT STRING(N-ABS(I)*2,"*")
NEXT I
END
你的每行个数弄错了!

4 楼

针对1楼的(2)有本事不直接打印。
就解决一下调用int 0x10 的0x0e功能
'$include:'qb.bi'
dim shared reg as regtype
sub putchar(i as integer)
    reg1.ax=&H0e*256+i
    interruptx &h10,reg,reg
end sub
putchar(asc("*"))
putchar(10)
putchar(13)
for i=1 to 3
putchar(asc("*"))
next
putchar(10)
putchar(13)
for i=1 to 5
putchar(asc("*"))
next
putchar(10)
putchar(13)
for i=1 to 3
putchar(asc("*"))
next
putchar(10)
putchar(13)
putchar(asc("*"))
putchar(10)
putchar(13)
end

5 楼

启动的时候用qb/l参数
貌似n年以前qb45发的帖子教的

我来回复

您尚未登录,请登录后再回复。点此登录或注册