AC代码如下:这三题。。。可以用一份代码提交。。。加一个判断n!=-1就行
#include <iostream> #include <cstdio> using namespace std; int main(){ //求卡特兰数。打表。 int a[101][100]; a[2][0] = 1; a[2][1] = 2; a[1][0] = a[1][1] = 1; for( int i = 3; i <= 100; i++ ){ int yu = 0; int j = 1; for( j = 1; j <= a[i-1][0]; j++ ){ int t = a[i-1][j] * ( 4 * i - 2 ) + yu; a[i][j] = t % 10; yu = t / 10; } while( yu ){ a[i][j++] = yu % 10; yu /= 10; } j--; for( int k = j; k >= 1; k-- ){ int t = a[i][k] + yu * 10; a[i][k] = t / ( i + 1); yu = t % ( i + 1 ); } while( !a[i][j] ){ j--; } a[i][0] = j; } int n; while( scanf( "%d",&n ) != EOF ){ for( int i = a[n][0]; i >= 1; i-- ){ cout << a[n][i]; } cout << endl; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。