您的位置:首页 > 编程语言 > Java开发

java实现算法设计之走楼梯

2013-06-01 16:01 337 查看
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

      GoStair gs = new GoStair(6);

      gs.backtrack(0);
}

}

class GoStair{
int  n;
int s[];
GoStair(int m){
n=m;
s=new int
;
}
void backtrack(int t){
if(sum(t)>=n){//判断第t个节点前的总和是否大于等于楼梯总数
if(sum(t)==n){//相等
for(int i=0;i<t;i++)
//if(s[i]>0)

System.out.print(s[i]+" ");
}
System.out.println();
}else{
for(int i=1;i<=2;i++)
if(sum(t)+i<=n)//如果第t个节点前的总和+i小于等于楼梯总数,说明第t个节点可以等于i
{s[t]=i;
     // if(sum(t+1)<n)
backtrack(t+1);

}

}
}
//求第k个节点前所总的楼梯总数
private int sum(int k){
int temp=0;
for(int  i=0;i<k;i++)
temp+=s[i];
return temp;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: