当 n 大于 20 时,我的输出为 false。所以我需要帮助来计算加泰罗尼亚语的数字 c(n( n,n 小于 100
要计算大输入值的结果,您必须处理大整数(大于任何内置类型,如 int64(长整型((。大整数算术支持包含在一些语言中,如 C# 和 Python。
在C++你应该使用一些库,如GMP,Boost.Multiprecision或一些轻量级库(因为你只需要加法和乘法(。
#include <gmp.h>
mpz_t a, b;
mpz_init_set_str (a, "191999293783437378367363763763"argv[1], 10);
mpz_init_set_str (b, "44766484748782378237827328-1829087234976123097", 10);
mpz_add (t, a, b);
很有可能自己编写这些操作的实现。
通过for
循环调用函数
unsigned long int catalan(unsigned int n){
if (n <= 1) return 1;
unsigned long int res = 0;
for (int i=0; i<n; i++)
res += catalan(i)*catalan(n-i-1);
return res;
}