• java面试的题目兔子、素数、水仙花


    题目一:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…

      public class Prog1{
        	public static void main(String[] args){
        		int n = 10;
        		System.out.println("第"+n+"个月兔子总数为"+fun(n));
        	}
        	private static int fun(int n){
        		if(n==1 || n==2)
        		   return 1;
        		else
        		   return fun(n-1)+fun(n-2);
        	}
        }
    

    题目二:判断101-200之间有多少个素数,并输出所有素数。
    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

      public class Prog2{
            	public static void main(String[] args){
            		int m = 1;
            		int n = 1000;
            		int count = 0;
            		//统计素数个数
            		for(int i=m;i<n;i++){
            			if(isPrime(i)){
            				count++;
            				System.out.print(i+" ");
            				if(count%10==0){
            					System.out.println();
            				}
            			}
            		}
            		System.out.println();
            		System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");
        	}
        	//判断素数
        	private static boolean isPrime(int n){
        		boolean flag = true;
        		if(n==1)
        		  flag = false;
        		else{
        			for(int i=2;i<=Math.sqrt(n);i++){
        			if((n%i)==0 || n==1){
        				flag = false;
        				break;
        			}
        			 else
        			   flag = true;
        		  }
        		}
        		return flag;
        	}
        }


    题目三:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
    程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

    public class Prog3{
    	public static void main(String[] args){
    		for(int i=100;i<1000;i++){
    			if(isLotus(i))
    			   System.out.print(i+" ");
    		}
    		System.out.println();
    	}
    	//判断水仙花数
    	private static boolean isLotus(int lotus){
    		int m = 0;
    		int n = lotus;
    		int sum = 0;
    		m = n/100;
    		n  -= m*100;
    		sum = m*m*m;
    		m = n/10;
    		n -= m*10;
    		sum += m*m*m + n*n*n;
    		if(sum==lotus)
    			return true;
    		else
    			return false;
    		}
    }


  • 相关阅读:
    Python 避免字典和元组的多重嵌套
    支持向量机(四)SMO算法
    用 None 来描述具有动态默认值的参数
    Minitab 控制图
    MySQL在并发场景下的问题及解决思路
    redis变慢查询
    php中流行的rpc框架详解
    MySQL查询性能优化
    【学习笔记】VS Code的keil插件使用方法
    【学习笔记】keil5 CMSIS/core_cm3.c(445): error: nonASM statement in naked function is not supported uint32_t result=0;
  • 原文地址:https://www.cnblogs.com/sxjblogs/p/11241589.html
Copyright © 2020-2023  润新知