39级台阶问题(递归)

    xiaoxiao2022-07-04  111

    题目

    理解

    左右脚其实就是偶数步,不但要考虑偶数步,还要考虑第一步跨一个台阶还是两个台阶,每跨一步所跨的步数就要加1,刚开始我只想到用n一个变量,但是发现做不出来,需要两个变量n,m,n是台阶数,m是所跨步数,问题求有多少种满足条件的方法,必须有个sum来做计数器。递归还是挺难想的。

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int sum = 0; void find(int n,int m) { if (n < 0) return ; if (n == 0 && m%2==0) { sum++;//计数器 } find(n - 1,m+1); find(n - 2,m+1); } int main() { find(39, 0); printf("%d\n",sum); system("pause"); return 0; }

    运行结果

    最新回复(0)