Java编程题:一个人上楼梯,他可以一步上1个台阶,2个台阶或3个台阶,共有n个台阶,输出所有他上台阶的方
Java编程题:一个人上楼梯,他可以一步上1个台阶,2个台阶和3个台阶,共有n个台阶,输出所有他可能上台阶的方法n不是一个定值,而是一个不定值,貌似要用一个递归算法,跟八...
Java编程题:一个人上楼梯,他可以一步上1个台阶,2个台阶和3个台阶,共有n个台阶,输出所有他可能上台阶的方法
n不是一个定值,而是一个不定值,貌似要用一个递归算法,跟八皇后问题类似。
metshi的想法跟我一样,但是我想要的是具体的代码,我只知道大概的思路,不知道怎么写代码 展开
n不是一个定值,而是一个不定值,貌似要用一个递归算法,跟八皇后问题类似。
metshi的想法跟我一样,但是我想要的是具体的代码,我只知道大概的思路,不知道怎么写代码 展开
展开全部
一定要用递归的就这样写:
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(stair<0) 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 + "种走法");
}
}
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(stair<0) 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 + "种走法");
}
}
展开全部
用递归的方法 :
一级台阶有一种方法
两级台阶有三种方法
从三级开始 每增加一级台阶多3种方法
n个台阶比n-1个台阶 多3种方法
一级台阶有一种方法
两级台阶有三种方法
从三级开始 每增加一级台阶多3种方法
n个台阶比n-1个台阶 多3种方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Taijie{
public static int digui(int i){
if(i==1)
return 1;
if(i==2)
return 3;
if(i>3)
return digui(i-1)+3;
}
public static void main(String args[]){
int n = 10;//也可以读取输入的一个数
int total = digui(n);//上台阶总数
}
}
public static int digui(int i){
if(i==1)
return 1;
if(i==2)
return 3;
if(i>3)
return digui(i-1)+3;
}
public static void main(String args[]){
int n = 10;//也可以读取输入的一个数
int total = digui(n);//上台阶总数
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主体代码:
public static int a(int t) {
if (t == 1)
return 1;
if (t == 2)
return 2;
if (t == 3)
return 3;
return a(t - 1) + a(t - 2)+ a(t - 3);
}
public static int a(int t) {
if (t == 1)
return 1;
if (t == 2)
return 2;
if (t == 3)
return 3;
return a(t - 1) + a(t - 2)+ a(t - 3);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class TYes {
public static void main(String[] args) {
int n=10;
for(int x=0;x<n;x++){
for(int y=0;y<n;y++){
for(int z=0;z<n;z++){
if(x+2*y+3*z == 10){
System.out.println("x="+x+" y="+y+" z="+z);
}
}
}
}
}
}
public static void main(String[] args) {
int n=10;
for(int x=0;x<n;x++){
for(int y=0;y<n;y++){
for(int z=0;z<n;z++){
if(x+2*y+3*z == 10){
System.out.println("x="+x+" y="+y+" z="+z);
}
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询