爬楼梯java代码 java走楼梯

pascal爬楼梯(有坏台阶)问题

递推式:f[i]=f[i-1]+f[i-2]+f[i-3](i=3)   

创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为宿城企业提供专业的成都网站建设、网站设计宿城网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

基本情况:f[0]=1; f[1]=1;  f[2]=2;

如果是坏台阶  清零

代码主程序

begin

readln(n,m);

for i:=1 to m do  begin read(a[i]);  s[a[i]]:=true; end; //s数组表示是否是坏台阶

f[0]:=1; if s[1]=false then f[1]:=1;  if s[2]=false then f[2]:=2;

for i:=3 to n do

if s[i]=false then f[i]:=f[i-1]+f[i-2]+f[i-3];

writeln(f[n]);

end.

算法设计 爬楼梯类型,共n阶楼梯,一次最多爬m阶,用JAVA或者C或者C++

循环,,,,,好多循环,,,,哇,,,,实现了

#includestring.h

#includeiostream

#includestack

using namespace std;

int main()

{

int n = 0, m = 0, sum = 0, cnt = 0;

cout "输入阶梯数:" endl;

cin n;

cout "输入最多爬的阶梯数:" endl;

cin m;

if (n = 0)

{

cout "就一种,上去了!" endl;

}

if (m = 0)

{

cout "你想上是不可能的!" endl;

}

int i;

stackint sk;

do

{

if (sum = n)

{

++cnt;

while (sum = n)

{

sk.push(1);

++sum;

}

}

if (!sk.empty())

{

sum -= sk.top();

sk.pop();

}

else

{

cout cnt endl;

return 0;

}

HHH:

if (!sk.empty())

{

i = sk.top();

}

else

{

cout cnt endl;

return 0;

}

if (i m)

{

++i;

}

else

{

if (!sk.empty())

{

sum -= sk.top();

sk.pop();

goto HHH;

}

else

{

cout cnt endl;

return 0;

}

}

if (!sk.empty())

{

sum -= sk.top();

sk.pop();

}

else

{

cout cnt endl;

return 0;

}

sk.push(i);

sum += i;

} while (1);

return 0;

}

Java编程题:一个人上楼梯,他可以一步上1个台阶,2个台阶或3个台阶,共有n个台阶,输出所有他上台阶的方

一定要用递归的就这样写:

public class Test{

static final int s = 10; //自定义的台阶数

static int len = 0, sum = 0;

static int step[] = new int[s];

static void compute(final int stair) {

if(stair0) return;

if(stair==0) {

printSum();

sum++;

return;

}

for(int i = 1; i = 3; i++) {

step[len] = i;

len++;

compute(stair-i);

len--;

}

}

static void printSum() {

System.out.print("走法:");

for(int i = 0; i len; i++)

System.out.print(step[i]+ " ");

System.out.println();

}

public static void main(String args[]){

compute(s);

System.out.println("共有" + sum + "种走法");

}

}

请教两道JAVA编程题?

第一题:

public class no1

{

public static void main(String args[])

{

int i,j;

for(i=1;i=5;i++){

for(j=1;j=i;j++)

System.out.print("*");

System.out.println("");

}

}

}

编写一个Java应用程序,要求:我们日常生活中的爬楼梯,你可以一步走一层,也可以一步走两层,

public class TYes {

public static void main(String[] args) {

int n=10;

for(int x=0;xn;x++){

for(int y=0;yn;y++){

for(int z=0;zn;z++){

if(x+2*y+3*z == 10){

System.out.println("爬楼梯方法:"+"一步"+x+" 二步"+y+" 三步"+z);

}

}

}

}

}

}

n级阶梯,每次走一步或两步,问最多有多少种走法 用java程序

递归实现。。。

重要的是理解这个逻辑,

第n布,走一步,即n-1,再求n-1个阶梯的走法,

走两步,即n-2,再求n-2个阶梯的走法,

以此,n级阶梯的走法是n-1个阶梯的走法与n-2个阶梯的走法的和。

public int GetStepNum(int n)

{

if(n1) throw new Exception();

if(n==1) return 1;

if(n==2) return 2;

if(n2)

return GetStepNum(n-1)+GetStepNum(n-2);

}


分享标题:爬楼梯java代码 java走楼梯
标题链接:http://scjbc.cn/article/hjhhjd.html

其他资讯