当前位置 : 主页 > 编程语言 > java >

基本算法练习——上台阶

来源:互联网 收集:自由互联 发布时间:2022-07-07
问题描述: 就是求枚举结果,不过是以 逻辑树的形式。 算法如下: #include iostream using namespace std ; int num ; void cal ( int m ){ if ( ! m ){ num ++ ; return ; } if ( m - 1 = 0 ) cal ( m - 1 ); m = m - 1 ; if


问题描述:

  就是求枚举结果,不过是以 逻辑树的形式。

算法如下:

#include <iostream>

using namespace std;

int num;

void cal(int m){
if(!m){
num++;
return;
}
if(m-1>=0) cal(m-1);
m=m-1;
if(m-2>=0) cal(m-2);
}

int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int m;
cin>>m;
num=0;
cal(m);
cout<<num<<endl;
num=0;
}
}

注释:

   AC通过为100;

   1.这个问题以前见过,没想到这次做起来这么得心应手!!!  看来算法练习真的十分必要啊。

   2.注意,逻辑深度 走了的步骤需要减去,这里是减去一,2没有减是因为,2的作用域只在子树中,所以可以不用减。

上一篇:基本算法练习——接金币
下一篇:没有了
网友评论