编写一个小程序,请大家帮帮忙~~先谢了

来源:百度知道 编辑:UC知道 时间:2024/06/28 12:09:48
一个人上楼梯,她可以一步1个台阶,2个台阶,3个台阶,楼梯一共5个台阶,编个程序,求她一共有多少走法 (语言无所谓,不过最好用c++或java)
正确结果是:12 请大家调试好再作答,3q!~~

这应该是典型的回溯算法 正常的思维应该是一步一步地走 每步1,2,3格 一直到走满为止 就像一楼说得那样 应该考虑不同的排列
下面这个程序是具有一般性的 这是回溯算法递归形式的通式
#include <stdio.h>

int Check(int total);

void main()
{
printf("%d\n", Check(5));
}

int Check(int total)
{
int n = 0;
if (total == 0)
{
n = 1;
}
if (total >= 1)
{
n += Check(total - 1);
}
if (total >= 2)
{
n += Check(total - 2);
}
if (total >= 3)
{
n += Check(total - 3);
}

return n;
}

C的:
main()
{
int a,b,c;
for(a=0;a<=5;a++)
for(b=0;b<=2;b++)
for(c=0;c<=1;c++)
if((a*1+b*2+c*3)==5) printf("%d.%d.%d\n",a,b,c);
getch();
}
会C++应该能看懂

又写了个JAVA的
public class test1
{
public static void main(String[] args)
{ int a,b,c;
for(a=0;a<=5;a++)
for(b=0;b<=2;b++)