我在为C中的赋值编写一些代码,我不得不递归地计算一个加泰罗尼亚数。给出了以下公式:公式IMG。
应采用以下方式:
0>1(填写0应打印1)
5> 42 (填5应打印42)
7> 429 (填写7份应打印429份)
9> 4862 (填写9应打印4862)
10 > 16796 (填写10应打印16796)
请看一看:
#pragma warning(disable : 4996)
#include <stdio.h>
int catalanRecursief(int n) {
if (n == 0){
return 1;
} else {
return (2 * ((2 * n) - 1)) / (n + 1) * (catalanRecursief(n - 1));
}
}
int main(void){
int n;
printf("Catalan printer\n\n");
printf("What catalan number do you want to calculate? ");
scanf("%d", &n);
/*catalanRecursief(n);*/
printf("Catalan number: %d > %d", n, catalanRecursief(n));
getchar();
return(0);
}发布于 2021-09-27 21:25:36
通过将单元从n改为浮动,就足以解决这个问题。
int catalanRecursief(float n) {
if (n == 0) {
return 1;
} else {
return ((2 * ((2 * n) - 1)) / (n + 1)) * (catalanRecursief(n - 1));
}
}或者也是
int catalanRecursief(int n) {
if (n == 0) {
return 1;
} else {
return ((2.0 * ((2 * n) - 1)) / (n + 1)) * (catalanRecursief(n - 1));
}
}这是因为除以整数c可以截断它们。
https://stackoverflow.com/questions/69353272
复制相似问题