和Basic版相比,这个版本有以下几处不同点
这次采用的不是静态数组,而是动态数组,先定义一个数组“Dim buff()”,在运行过程中再根据需要扩展大小。
计算结果没有直接输出,而是写到文件,因为当字符串太长时,MsgBox的会丢失部分内容
难点:确定n!的位数是难点,ln(n!) 可用 斯特林逼近 来计算,ln(n!)= (n+0.5)ln(n)- n + 0.5*ln(2*pi)
请参考 http://mathworld.wolfram.com/StirlingsApproximation.html

下面为源代码

Dim n,i,j,c,t,len1
Dim buff()
Dim numstr
Const RAD=10000
Const PI=3.1415926535897932384626433832795
numstr= InputBox( "please input a numer n(n>1)", "calculate the n!", 1)
if  numstr > "" and IsNumeric( numstr ) Then
n=CLng(numstr)
log_facn=(n+0.5)*Log(n)-n+0.5*Log(2*PI) 'log_facn=ln(n!)
ReDim buff(log_facn/Log(RAD)+1)         'Expand array size for store n!
buff(1)=1
len1=1
For i=1 to n
c=CLng(0)
For j= 1 to len1
t=CLng(buff(j))* CLng(i)+c
buff(j)=t MOD RAD
c=t \ RAD
Next
If c>0 Then
len1=len1+1
buff(len1)=c
End If
Next
'Caculation is completed, the following code for write the result to file
filename=".\" & CStr(n) & ".txt"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(filename, True)
numstr=CStr(buff(len1))
For j=len1-1 to 1 step -1
t=CStr(buff(j))
If Len(t)<4 Then
numstr=numstr & String(4-Len(t),"0")
End If
numstr=numstr & t
If Len(numstr) > 76 Then
a.WriteLine(numstr)
numstr=""
End if
Next
If (Len(numstr)>0) Then
a.WriteLine(numstr)
End If
a.close
MsgBox "Result have been stored to file " & filename,0,"calculate n!"
Else
MsgBox "Invalid input"
End if

参考学习资料
1. VBScript 教程,可从VBScript http://download.pchome.net/development/reference/detail-11108.html
2. VB script 脚本语言.doc

计算大数阶乘--VB Script 版相关推荐

  1. 精度计算——大数阶乘

    精度计算--大数阶乘 摘自一个 ACM函数模板 ,学习记录自己的理解(^U^)ノ~YO 语法:int result=factorial(int n) 参数:n: n的阶乘 返回值:阶乘的结果 注意: ...

  2. c语言22阶乘太大,C语言计算大数阶乘的方法

    C语言计算大数阶乘的方法,整数,数组,阶乘,本文,格式 C语言计算大数阶乘的方法 易采站长站,站长之家为您整理了C语言计算大数阶乘的方法的相关内容. 本文实例为大家分享了C语言计算大数阶乘的具体代码, ...

  3. C语言之计算大数阶乘,如计算100!和1000!等~~~

    一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且定义0的阶乘为1.自然数n的阶乘写作n!.即n!=1×2×3×-×n.阶乘亦可以递归方式定义:0!=1,n!=(n-1 ...

  4. 大数阶乘算法c语言程序,c/c++开发分享C语言计算大数阶乘的方法

    c/c++开发分享 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组a来表示一个 ...

  5. c语言大整数阶乘计算器,大数阶乘_yuanmercu_oxxdl_新浪博客

    菜鸟篇 程序1,一个最直接的计算阶乘的程序 #include "stdio.h" #include "stdlib.h" int main(int argc, ...

  6. C#阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右

    关于阶乘,老郭和宝宝等前辈做了大量研究,计算速度也达到了非常快的水准.本文宗旨不在于和他们比快,因为他们专门为阶乘做了很多优化.本文介绍的是使用C#直接计算的方法,速度虽然不能跟他们相比,但在一般场合 ...

  7. 阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右

    关于阶乘,老郭和宝宝等前辈做了大量研究,计算速度也达到了非常快的水准.本文宗旨不在于和他们比快,因为他们专门为阶乘做了很多优化.本文介绍的是使用C#直接计算的方法,速度虽然不能跟他们相比,但在一般场合 ...

  8. 阶乘计算之大数阶乘与快速取模阶乘计算

    大数阶乘的常规运算 即数学的模拟运算.一位一位的乘,有进位就进位. #include <bits/stdc++.h> #define _xx ios_base::sync_with_std ...

  9. NYOJ 28 大数阶乘

    大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数m(0& ...

  10. NYOJ 27 大数阶乘

    大数阶乘 时间限制:3000ms  |  内存限制:65535KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数m(0< ...

最新文章

  1. 【python】排序算法的稳定性冒泡排序(画图详细讲解)
  2. 用python玩转数据第四周答案_大学慕课用Python玩转数据答案公众号
  3. 微信支付,redirect_uri域名与后台配置不一致,错误代码10003
  4. bat转exe工具 Bat To Exe Converter v2.4.7 绿色版
  5. 12. 我的第一个容器化应用
  6. android 同步list数据,android SharedPreferences保存list数据
  7. java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片
  8. Vue-动态绑定属性
  9. 16行代码实现微信聊天机器人,自动智能回复,打团了让它来陪老婆聊天
  10. NORDIC nRF52840 输入引脚初始化及中断操作
  11. GIMP为证件照更换背景颜色
  12. userdel: user xxx is currently used by process xxx
  13. html div旋转45度,CSS动画 - 在每次悬停时进一步旋转45度
  14. 腾讯2017秋招笔试编程题--游戏任务标记
  15. python学习-循环替换txt文件中的指定字符
  16. 李宏毅2021机器学习笔记——Regression
  17. Zemax操作21--双折射
  18. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(7)- 从SD/eMMC启动
  19. html5手机排名,手机网站排名怎么做?移动端手机站SEO排名的13个要点
  20. 随机生成6位随机数(字母+数字)

热门文章

  1. IDEA 设置控制台背景颜色
  2. 联想打印机7256显示更换墨盒_联想打印机M7605D墨粉更换后还在提示更换墨粉盒...
  3. Windows 10怎样不利用第三方付费软件实现对C盘的深度清理
  4. 五、Matlab 画图——万能的plot函数
  5. 天正自定义填充图案怎么添加_自定义AutoCAD填充图案教程 - CAD自学网
  6. elsevier中elsarticle模板如何使用apa引用格式
  7. 如何统计项目代码行数
  8. rgb转nv12 nv12转rgb
  9. 芥子空间破解游戏的加固保护案例
  10. 软考信息系统项目管理师知识点总结2