有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?

有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?_第1张图片

#include
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级,共有多少种走法?)