7-1 编程题:兔子繁殖问题
已知有一对兔子,每个月可以生一对兔子,而小兔子一个月后又可以生一对小兔子(比如:2月份出生的小兔子4月份可以生育)。也就是说,兔子的对数为:第一个月1对,第二个月2对,第三个月3对,第四个月5对…假设兔子的生育期为两年,且不死。那么问题来了,你能说出每个月的兔子数么?
输入格式:
输入一个数n,表示第n个月,1<=n<=24。
输出格式:
输出这个月兔子的数目。
输入样例:
4
输出样例:
5
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int month=in.nextInt();
int a=1,b=2,c=0;
if (month==1)
System.out.println("1");
else if (month==2)
System.out.println("2");
else{
for (int i=3;i<=month ;i++ ) {
c=a+b;a=b;b=c;
}
System.out.println(c);
}
}
}
7-2 编程题:空心字母金字塔
输入一个大写的英文字母,输出空心的字母金字塔。
输入格式:
一个大写英文字母。
输出格式:
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
输入样例:
E
输出样例:
A B B C C D D EEEEEEEEE
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
char cha = in.next().charAt(0);
int m = cha-'A';//计算输入的字母与字母A的距离
for (int i=0;i<m ;i++ ) {
//分行输出
for (int j=1;j<40-i ;j++ ) //先输出字母前的空格
System.out.print(" ");
if(i==0)
System.out.println((char)((int)'A'+i));//如果是第一行,则输出后回车
else
System.out.print((char)((int)'A'+i));
for (int t=1;t<=2*i-1 ;t++