@ZHANGQIANYI2020
HNUCM-OJ 蜂房,字母全排列,倒序输出,骨牌覆盖,汉诺塔,超级青蛙
问题 A: 蜂房
(时间限制: 1 Sec 内存限制: 33 MB)
题目描述:
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
输入:
多组数据输入,每组数据包含两个正整数a, b,且 a<b。
输出:
蜜蜂从蜂房a爬到蜂房b的可能路线数。
样例输入:
1 2
3 4
样例输出:
1
1
参考答案:
import java.util.Scanner;
public class Main {
public static int go(int a,int b) {
int s = 0;
if(b-a==1) {
s=1;
}
if(b-a==2) {
s=2;
}
if(b-a>2) {
s=go(a,b-1)+go(a,b-2);
}
return s;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()) {
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println(go(a,b));
}
}
}
问题 B: 字母全排列
(时间限制: 1 Sec 内存限制: 33 MB)
题目描述:
编写一个程序,使用递归算法输出一个一维字符数组中所有字符的全排列,假设字符都不一样。例如{‘a’,‘b’,‘c’}的全排列为(a,b,c), (a,c,b), (b,a,c), (b,c,a), (c,a,b), (c,b,a)
输入:
多组测试用例,每组输入一个正整数n(0<n<=26)。
输出:
输出从a开始,连续n个字母的全排列,且每组输出之间用空格隔开。
样例输入:
1
2
样例输出:
a
ab
ba
参考答案:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc