计算大数阶乘--basic版

代码见下:

OPTION BASE 1
DIM buff(16000) AS LONG
PRINT "calc n!"
INPUT "n="; nn%

rad& = 10000
arrLen% = 1
buff(1) = 1

FOR i% = 1 TO nn% STEP 1
   cc& = 0
   FOR j% = 1 TO arrLen% STEP 1
       tt& = buff(j%) * i% + cc&
       buff(j%) = tt& MOD rad&
       cc& = tt& \ rad&
   NEXT

   IF (cc& > 0) THEN
       arrLen% = arrLen% + 1
       buff(arrLen%) = cc&
   END IF
NEXT

PRINT "n!="; LTRIM$(RTRIM$(STR$(buff(arrLen%))));
FOR i% = arrLen% - 1 TO 1 STEP -1
    s$ = LTRIM$(RTRIM$(STR$(buff(i%))))
    len1% = LEN(s$)
    IF (len1% < 4) THEN
        PRINT STRING$(4 - len1%, "0");
    END IF
    PRINT s$;
NEXT


说明:
1. 该程序在qbasic 下编译通过。
  qbasic 可从 http://xiazai.zol.com.cn/detail/14/132311.shtml 下载
  QBasic的学习,可参考http://www.zz5z.net/qb/index.htm
2. Qbasic是16位dos程序,数组的大小不能超过64k,故定义数组 buff(16000)。16000×4 <64K
3. 对bas程序的说明,免得时间长了忘记其语法。
  3.1 变量名称后缀的含义
    %:整数,2bytes, &:长整数,4bytes, $:字符串。
   3.2 数组使用 (), 而不用中括号
   3.3 运算符:mod  求余, "/" 整除
   3.4 Input 输入,第一个字符串表示提示信息
   3.5 Print 输出,”:”分割表示紧凑格式输出,“,”最各个字段的分隔符,松散格式输出
   3.6 函数,字符串函数以$结尾,
      STRING$, 重复多次字符串
      LTRIM$,RTIRM$: 除去前导/尾随空格
      STR$: 数值转换为字符串
4 性能比较:和Dos批处理和Linux Bash相比,虽然同是解释性语言,但在qbasic 运行比dos批处理和Linux bash快得多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值