卡特兰数,值得纪念下,包括了高精度乘法和除法。

首先百度卡特兰数的公式吧:F(n)=F(n-1)*(4*n-2)/(n+1)  F(0)=1;

应用于杭电的1023题,火车出栈的几种方式...

#include <cstdio>
#include <algorithm>
#include <cstring>
const int l=110;
int f[200][200];
int ktl()
{
	f[0][0]=1;
	int n; 
	for (int i=1;i<=100;i++)
	{
		n=4*i-2;
		for (int j=0;j<=l;j++)
		{
			f[i][j]+=f[i-1][j]*n;
			if (f[i][j]>=10)
			{
				f[i][j+1]+=f[i][j]/10;
				f[i][j]=f[i][j]% 10;
			}
		}
		n=i+1;
		int ys=0;
		for (int j=l;j>=0;j--)
		{
			int p=(10*ys+f[i][j])/n;
			ys=(10*ys+f[i][j])%n;
			f[i][j]=p;
		}
	}
	return 0;
}
int main()
{
	memset(f,0,sizeof(f)); 
	ktl();
	int kk;
	while (~scanf("%d",&kk))
	{
		int j=l;
		while (f[kk][j]==0) j--;
		for (int k=j;k>=0;k--)
			printf("%d",f[kk][k]);
			printf("\n");
	}
	return 0;
}


 高精度乘法:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <sstream>
#include <algorithm>
using namespace std;
int a1[1001],a2[1001],s[1000010],l1,l2;
int l11,l22;
int chengfa()
{
	int pos,i,j;
	memset(s,0,sizeof(s));
	for (i=1;i<=l1;i++)
		for (j=1,pos=i;j<=l2;j++)
			s[pos++]+=a1[i]*a2[j];
	pos-=1;
	for (i=1;i<=pos;i++)
	if (s[i]>=10)
	{
		if (i==pos) pos++;
		s[i+1]+=s[i]/10;
		s[i]%=10;
	}
	return pos;
}
int main()
{
	char s1[1000],s2[1000];
	string ss;
	while (getline(cin,ss) && ss.length()>0)
	{
		istringstream is(ss);
		is>>s1>>s2;
		l1=strlen(s1);
		l2=strlen(s2);
		if (l1==1 && s1[0]=='0' || l2==1 && s2[0]=='0')
		{
			printf("0\n");
			continue;
		}
		l11=0,l22=0;
		if (s1[0]=='-') l11=1;
		if (s2[0]=='-') l22=1;
		for (int i=l1-1,l=1;i>=l11;i--,l++)
			a1[l]=s1[i]-'0';
		for (int i=l2-1,l=1;i>=l22;i--,l++)
			a2[l]=s2[i]-'0';
		int l=chengfa();
		if (l11!=l22) cout<<'-';
		while (s[l]==0) l--;
		for (int i=l;i>0;i--)
			printf("%d",s[i]);
		printf("\n");
	}
	return 0;
}


HugeCalc 是一款高精度算法库(同时支持 MBCS + UNICODE 版),适合于大规模科学计算,尤其适用于数论、密码学等领域研究,其核心算法耗费作者十余年的心血。具有占用资源少、效率高、使用便捷、易二次开发、可移植性强、可扩展性好等特点。关键文件 HugeCalc.dll 虽然很小,却提供了公共函数接口 709 个(标准C++接口 473 个;标准C接口 236 个),且其计算速度完全可与大型专业数学工具软件媲美! 现已提供了如下功能: ⊙ 高精度快速加法 ⊙ 高精度快速减法 ⊙ 高精度快速乘法 ⊙ 高精度快速除法 ⊙ 高精度快速同余 ⊙ 高精度快速位运算 ⊙ 高精度快速乘方 ⊙ 高精度快速开方 ⊙ 超大整数快速取对数 ⊙ 高精度快速求排列 ⊙ 高精度快速求组合 ⊙ 高精度快速阶乘、双阶乘、素数阶乘 ⊙ 高精度快速计算 Fibonacci、Lucas 数列 ⊙ 高精度快速乘积取模 ⊙ 高精度快速数论倒数取模运算 ⊙ 高精度快速乘方取模(支持负指数) ⊙ 高精度快速求最大公约数(支持群组运算) ⊙ 高精度快速计算扩展最大公约数 ⊙ 高精度快速求最小公倍数(支持群组运算) ⊙ 高精度快速“等幂和”(支持群组运算) ⊙ 高精度快速任意进制转换 ⊙ 超大整数素性快速检测 ⊙ 生成随机超大(素)整数、快速生成最邻近素数 ⊙ 自由指定有效位运算 ⊙ 强大而灵活的输出 ⊙ 高精度计时器(有暂停、累计、复位等功能) 为了与广大网友分享 HugeCalc 带来的便捷,该版公开了 HugeCalc.dll 的所有接口文件(同时支持 MBCS + UNICODE 版),大家可以更自由地进行高精度计算或自开发,而无须再依赖于 Mathematica 等大型软件。 V6.x 新增了各种标准导入接口,可方便各种编程语言进行二次开发,如 C++、C、VB、Delphi 等。 V7.x 可自动侦测用户 CPU 的型号,并据此自动调整算法及相应参数,使在兼顾老式机器的前提下,可充分发挥现代及未来 CPU 的功效(如采用 SSE2 指令集、多核并行等)。
落叶高精度表达式计算器V1.0(32位)版 本计算器程序是在win7 32位系统上,使用VB6.0开发的,本程序的主要特点是: 1) 高精度,支持万位精度的有理数常用运算; 包括:加,减,乘,除,乘方,开N次方,三角函数,反三角函数,双曲三角函数,反双曲三角函数等。 2) 表达式运算,本程序没有采用常用计算器的边输入边计算,而是输入完所有数据或算式后,解析表达式,分解运算符和数据,最后在运算出结果。 点击程序界面上的等于按钮,计算器开始运算。 3) 本计算器的各种运算函数大都是自已所写,没有调用大数库或其它数学库,仅大数开平方调用GMP大数库。 本计算器的各种子函数是通过定义的一个高精度数据结构接收和返回运算结果,这个高精度数据结构可以定义有符号(整数,小数,科学计数法表示的数), 函数内部集中对数值,小数点位置,指数进行运算,优点是调用简单,不易出错,可以说比较完善,综合运算能力强。 这点和大数库的实现不同, 大数库大都只提供对整数的运算,假如要对有理数运算, 一:你需要很多的调用前和调用后处理工作,这些工作并不需要很高的知识,但却需要很长时间的调试,它并不会因为你的水平很高而获得很大的时间提升。 二:很难进行综合运算。当你把某一个函数调顺后,进行综合运算时,会出现很多新的问题。 高精度数据结构VB定义为: Type StrToZx '高精度数的结构头 ZhFhBz As Boolean '正负号标志 XsdWz As Long '小数点右边数字的长度。例1234.567中这个数是3(为什么要这样定义,因为大多的基本运算都是右对齐的,这样定义减少了中间一些不必要的转换) JzBz As Integer '标记数组存的是什么进制的数(十进制或其它进制数) strlen As Long '运算数长度 Zx() As Long '存放运算数的数组 eE As Long '存放指数 End Type 4)综合运算,里面的三角函数,用户界面的算式,表达式运算,都是综合运算的体现,综合运算是大量基础运算的集合,中间稍有差错,就会算不出正确答案,里面内容繁琐,这里简单介绍一下。 5)本程序从2015年11月开始试编写,至2016年8月大致完成,开发周期很长,中间代码写了一两万行,从零基础到运行效率,综合效率的初中等水平,主要目的是练习编程,老外的数学软件已很强大,是我不可能相比的,我觉得我的程序如果把程序源码作为大数实例初级学习更合适。 6)程序中函数都具有输入值较验功能,若输入错误,会弹出提示窗口提示那一个函数输入错误。 7)由于本人是初次编程练习,且自身知识的不足,加上精力有限,最后的测试收尾也只是简单测试,里面肯定存在很大的不足和没发现的BUG,请网友们在论坛,或 我的邮箱:wtbzhy@126.com, 微博:qq_34030789,中指正,交流。 我若纠错后,会在下载网站更新,并根据您的地址发一份给您,谢谢! 再次欢迎大家使用本计算器,本计算器具有很好的表达式解析功能,会在以后的使用中获得很好的用户体验!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值