您的位置:首页 > 理论基础 > 数据结构算法

关于java爬楼梯的故事--数据结构

2011-10-15 10:46 295 查看
public
class ClimbStairs {
public
static
final
int N
=
10;//有N级楼梯
publi

c
static
final
int ONE
=
1;//一步可以迈1级

public
static
final
int TWO
=
2;//一步可以迈2级

public
static
final
int THREE
=
3;//一步可以迈3级

public
static
void main(String[] args) {

int max_ONE
= N/ONE;//如果只迈ONE,最多需要max_ONE

int
max_TWO = N/TWO;//如果只迈TWO,最多需要max_TWO
i

nt max_Three
= N/THREE;//如果只迈THREE,最多需要max_THREE

for(int
i=0; i<=max_ONE;
i++){

int temp_ONE
= i;//一步1级已迈出的级数

for(int
j=0; j<=max_TWO
- temp_ONE/2;
j++){

int temp_TWO
= j*2;//一步2级已迈出的级数

for(int
k=0; k<=max_Three
- temp_ONE/3
- temp_TWO/3;
k++){

int temp_THREE
= k*3;//一步3级已迈出的级数

if(temp_ONE+temp_TWO+temp_THREE
== N) System.out.println(i
+
"
"
+ j
+
"
"+ k); } } } } }

这个算法不完善,还需要考虑,现在还没有想好该怎么表达,
int max_Three
= N/THREE+1;
然后是if语句这个判断有点不太规则,如果这样写应该会比较好的if(10<=temp_ONE+temp_TWO+temp_THREE
<=12)这样应该可以解决问题的,good luck。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: