hdu1023 Train Problem II(卡特兰数)
来源:互联网 发布:冒泡法排序c语言解释 编辑:程序博客网 时间:2024/05/20 20:19
#include<stdio.h>#include<math.h>int a[105][105]; //大数卡特兰数int b[105]; //卡特兰数的长度void catelan(){ int len,temp,c,i,j; a[1][0]=b[1]=1; len=1; for(i=2; i<=100; i++) { for(j=0; j<len; j++) //乘法 a[i][j]=a[i-1][j]*(4*(i-1)+2); c=0; for(j=0; j<len; j++) //处理相乘结果 { temp=a[i][j]+c; a[i][j]=temp % 10; c = temp / 10; } while(c) //进位处理 { a[i][len++] = c % 10; c /= 10; } c=0; for(j=len-1; j>=0; j--) //除法 { temp=c*10+a[i][j]; a[i][j]=temp/(i+1); c=temp%(i+1); } while(!a[i][len-1]) //高位零处理 len--; b[i]=len; }}int main(){ int n; catelan(); while(~scanf("%d",&n)) { for(int i=b[n]-1; i>=0; i--) printf("%d",a[n][i]); printf("\n"); } return 0;}
对于大数卡特兰数,百度百科直接就有样例程序,照样子复制粘贴直接搞定。
如果,你足够耐心,想另类点,你也可以打表:
可以去戳这个网站,里面有1到100的卡特兰数http://blog.csdn.net/lttree/article/details/29392541
小伙伴们,是不是惊呆了?!
我的做法就是用之前大数乘法的理念,每个数组存5位数。
这样做有几点要注意:
1.先乘起来,存到数组,再除。
2.除的时候,要将前一位的余数*相应位数(我存5位,所以乘以 100000 ) 加上当前数组内容再算除法。
3.最后要看高位是否为0
4.最后输出的时候,还要补0,就比如第12个卡特兰数 208012,存在数组肯定是 8012,2
如果输出的时候没有补0,则会输出28012,显然是错误的。这个可以用填充来解决,C语言的printf比较简便。
恩,这道题,卡了一段时间,关键是忘了先算乘最后算除。
As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railway.
12310
12516796
阅读全文
0 0
- hdu1023 Train Problem II(卡特兰数)
- hdu1023 Train Problem II 卡特兰数
- HDU1023——Train Problem II(卡特兰数)
- hdu1023 Train Problem II(卡特兰数)
- hdu1023 Train Problem II 卡特兰数,JAVA大数类
- hdu1023 Train Problem II [高精度卡特兰数]
- HDU1023 Train Problem 卡特兰数
- ACM-卡特兰数之Train Problem II——hdu1023
- HDU1023 Train Problem II【卡特兰数+大数+亿进制+打表】
- HDU1023 Train Problem 2 (卡特兰数列)
- hdu1032 Train Problem II (卡特兰数)
- Train Problem II hdu 1023 卡特兰数 (模板)
- hdu 1023 Train Problem II (卡特兰数)
- HDU 1023 Train Problem II(卡特兰数)
- hdu 1023 Train Problem II (卡特兰数)
- HDU-1023 Train Problem II(卡特兰数)
- HDU Train Problem II (卡特兰数+大数)
- HDU 1023 Train Problem II (卡特兰数)
- nfs
- coderforces 814 D. An overnight dance in discotheque(贪心)
- 可变形卷积网络(HR)
- 嵌入式软件开发--QT--AD转换
- 网站静态化处理—前后端分离—下(8)
- hdu1023 Train Problem II(卡特兰数)
- python 关于list.append()容易犯的错误
- 淘淘商城系列——使用SolrJ管理Solr集群
- 进程调度之--进程的组织
- py-faster-rcnn流程(4)——训练FastRCNN网络一阶段
- Hyperledger-Fabric技术文档1--Fabric初体验
- 天气开发2——第二行代码(酷欧天气)
- 网站静态化处理—满足静态化的前后端分离(9)
- pxe