java 面试每日一题6

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class test6 {
    public static void main(String[] args) throws NumberFormatException, IOException{
        System.out.println("请输入月数:");
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int i=Integer.parseInt(br.readLine());
        int s=value(i);
        System.out.println("当月的兔子数量为:"+s);
    }

    private static int value(int i){
        int num=1;
        if(i<=2){
            return num=1;
        }else{
            return value(i-2)+value(i-1);
        }
    }
}
时间: 2024-10-12 01:10:15

java 面试每日一题6的相关文章

java 面试每日一题3

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class testThree { public static void main

java 面试每日一题2

题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 注:如果想单独输出中文的个数和中文符号的个数,只需把isChinese()中的if语句修改 知识补充: java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象.常用的类有BufferedReader,Scanner. 1.利用 Scanner 实现从键盘读入integer或float 型数据 Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Scanne

java 面试每日一题

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? import java.util.Scanner; public class testOne { /** * @param args */ private double totalHeight=100; private double curHeight=50; //下落 public void drop(int times){ if((times-1)==0){ re

java面试每日一题8

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位. import java.util.Scanner; public class Shuixianhua { public static void main(String[] args){ //

java 面试每日一题4

题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?  1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. public class TestFour { public static void main(String[] args){ int[] array={1,2,3,4}; int i,j,k,num = 0; for(i=0;i<4;i++){ for(j=0;j<4;j++){ if(i==j){ c

java面试每日一题11

题目:求1+2!+3!+...+20!的和 public class Recursion { public static void main(String args[]) throws NumberFormatException, IOException{ System.out.println("请输入一个数"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int num1=Integ

JAVA面试/笔试经典题

1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误.对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译. 2.是否可以从一个static方法内部发出对非s

java面试 - 经典算法题

题目一: public class testClockwiseOutput { //顺时针打印一个矩阵 @Test public void test(){ int[][] num = new int[100][100]; int n = 4; int count =1; for(int i=0;i<n;i++){ for(int j =0;j<n;j++){ num[i][j]=count++; } } output(num,0,n-1); } public void output(int[]

【Java每日一题】20161103

package Nov2016; import java.util.List; public class Ques1103 { public void method01(String[] array){} public void method01(Integer[] array){} public void method02(List<String> list){} public void method02(List<Integer> list){} } 今日问题: 请问主程序能否