zoukankan      html  css  js  c++  java
  • 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;
    		}
    }


  • 相关阅读:
    Leetcode 3. Longest Substring Without Repeating Characters/ 4. Median of Two Sorted Arrays[二分]
    最大流算法思想和理论的简单理解
    数值线性代数实验-共轭梯度法
    运筹学上机实验
    HDU 1542 Atlantis[扫描线]
    数值实验-高斯消元LU分解
    PAT 1143-Lowest Common Ancestor (30) 二叉树还原
    L2-006. 树的遍历
    hdu-3038 How Many Answers Are Wrong[并查集]
    poj-3253 Fence Repair[霍夫曼树]
  • 原文地址:https://www.cnblogs.com/sxjblogs/p/11241589.html
Copyright © 2011-2022 走看看