hdoj1023 Train Problem II(卡特兰数,对大数据的处理)
2017-05-23 20:50
357 查看
由火车序列这个实际问题引出卡特兰数问题。
c(0)=1;(n+2)*c(n+1)=c(n)*(4n+2)
这题是在理解别人代码的基础上,自己又重新敲了一遍,按照自己的理解注释了些地方。
c(0)=1;(n+2)*c(n+1)=c(n)*(4n+2)
这题是在理解别人代码的基础上,自己又重新敲了一遍,按照自己的理解注释了些地方。
//c(0)=1;(n+2)*c(n+1)=c(n)*(4n+2) #include<iostream> using namespace std; int main() { int i,j,len,r,temp,k,n; int a[101][101]={0}; int flag[101];flag[1]=1; a[1][0]=1;len=1; for(i=2;i<=100;i++) { k=i-1; for(j=0;j<len;j++) a[i][j]=a[i-1][j]*(4*k+2);//各位分别相乘 (4n+2) for(j=r=0;j<len;j++) //把除最高位以外的值都变为个位数 { temp=r+a[i][j]; a[i][j]=temp%10; r=temp/10; } while(r)//将最高位上的数像之前那样拆分为个位数存储在各个位置 { a[i][len++]=r%10; r=r/10; } for(r=0,j=len-1;j>=0;j--)//除以(n+2) { temp=r*10+a[i][j]; a[i][j]=temp/(k+2); r=temp%(k+2); } j=len-1; while(!a[i][j])//去零 { len--;j--; } flag[i]=len; } while(cin>>n) { for(i=flag -1;i>=0;i--) cout<<a [i]; cout<<endl; } return 0; }
相关文章推荐
- HDOJ 1023 Train Problem II 卡特兰数
- hdoj 1023 Train Problem II 【卡特兰数】
- hdoj-1023-Train Problem II【卡特兰数】
- HDOJ 1023 Train Problem II
- HDU 1023 Train Problem II 卡特兰数 大数的乘法除法
- hdu1023 Train Problem II 卡特兰数,JAVA大数类
- [HDOJ1023]Train Problem II
- HDOJ 1023 Train Problem II
- HDOJ 1023 Train Problem II
- HDU 1023 Train Problem II (卡特兰数)
- HDU 1023 Train Problem II(卡特兰数)
- hdu 1023 Train Problem II(卡特兰数的应用)出栈序列的统计
- hdu 1023 Train Problem II【卡特兰数】
- HDU 1023 Train Problem II (打表求解卡特兰数)
- hdu 1023 Train Problem II (卡特兰数)
- HDOJ 1023 Train Problem II
- hdu 1023 Train Problem II_出栈方法数_卡特兰数
- HDU 1023 Train Problem II (卡特兰数,经典)
- hdu 1023 Train Problem II 卡特兰数+java
- hdoj--1023 Train Problem II (高精度乘除法)