首页
社区
课程
招聘
★★大数计算器★★
发表于: 2006-8-29 00:38 3993

★★大数计算器★★

2006-8-29 00:38
3993
上次有个网友需要大数计算,刚好有点空编写了一个算霸插件,用来进行大数运算。


http://www.mycalc.cn/download/bigint.rar
下载后复制到 plugins 目录下即可。

没有算霸计算器的请先下载算霸计算器
http://www.mycalc.cn/download/mycalc.rar

目前提供的大数计算功能有:
gintadd, gintsub, gintmul, gintdiv, gintlcm, gintgcd。
使用方法:

a='12342'
b='1234'
c=gintadd(a, b)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢楼主分享  支持一下
2006-8-29 17:47
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼主能抽空制作!
2006-8-29 22:36
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
请楼主再检查一下,大数运算的插件不能下载!
2006-8-29 22:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 getiteasy 发布
请楼主再检查一下,大数运算的插件不能下载!


http://www.mycalc.cn/download/bigint.rar
2006-8-30 00:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2006-8-30 01:13
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢了,这次可以下载了!
2006-8-30 19:33
0
雪    币: 249
活跃值: (10)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
8
可以浮点吗?

这类高精度的一旦用到就要完全写一遍,还经常会有BUG。

本菜鸟也早就想写一个“无BUG”的高精度计算库。(支持浮点、分数的那种)

只是tju关闭zju被删号这些东西写出来暂时没有用就把计划搁下了。
2006-8-31 18:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
呵呵,大数计算这个问题比较有意思
可以用字符串计算,也可以用整型数组计算
我们学校还组织了个比赛,让计算3000的阶乘,看谁算的准,算的快
我把得奖那个源程序贴出来大家欣赏下撒

#include <iostream.h>
#include <fstream.h>

void main()
{
        unsigned int a[1522]={1};
        int m=1;

        //计算部分
        for(int i=1;i<3001;i++){
                for(int j=0;j<m;j++){
                        a[j]*=i;
                        while(1){
                                if(a[j]<100000) break;
                                else{unsigned int n=a[j];a[j]=n%1000000;j++;a[j]=a[j]*i+n/1000000;}
                        }
                }
                m=j;
        }

        //下边是把结果写到文件3000.txt中,跟计算过程无关
        ofstream out;
        out.open("3000.txt",ios::out);
        out<<"3000!=\n"<<a[m-1];
        if (out){
                for(i=m-2;i>=0;i--){
                        if(a[i]<100000)out<<'0';
                        if(a[i]<10000)out<<'0';
                        if(a[i]<1000)out<<'0';
                        if(a[i]<100)out<<'0';
                        if(a[i]<10)out<<'0';
                        out<<a[i];
                }
        }
        else out<<"error!";
        out.close;
}
2006-9-1 11:35
0
游客
登录 | 注册 方可回帖
返回
//