#include<stdio.h>
double jie(double n);
int main(void) {
int i, n;
scanf_s("%d", &n);
for (i = 0; i < n; i++) {
int b;
double a, k, l, yi, er;
scanf_s("%d", &b);
b--;
if (b % 2 == 0) {
double j, sum = 2, x;
yi = 2;
a = (double)b;
er = a / 2;
for (j = er - 1; j > 0; j--) {
x = j + yi;
sum = sum + jie(x) / (jie(j) * jie(yi));
yi = yi + 2;
}
printf("%.0f\n", sum);
}
else {
er = (double)(b / 2);
yi = 1;
double j, sum = 1, x;
for (j = er; j > 0; j--) {//注意是j--不要习惯化j++
x = j + yi;
sum = sum + jie(x) / (jie(j) * jie(yi));
yi = yi + 2;
}
printf("%.0f\n", sum);
}
}
}
double jie(double n) {
if (n <= 1) {
return 1;
}
else {
return n * jie(n - 1);
}
}
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
最新推荐文章于 2023-03-23 12:42:20 发布