【蓝桥杯】入门考试十道练习题

个人主页:西红柿炒鸡蛋儿的博客

系列专栏:蓝桥杯试题讲解集

                  LeetCode试题讲解集

推荐一款模拟面试、刷题神器:点击跳转网站

 

1、利用【^】进行x与y两个变量的值交换,并写明注释

package Example;

import java.util.Scanner;

/**
 * 利用【^】进行x与y两个变量的值交换
 *
 */
public class demo1 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		System.out.print("x==");
		int x = sc.nextInt();
		System.out.print("y==");
		int y = sc.nextInt();
		
		x = x ^ y;
		y = x ^ y;
		x = x ^ y;
		System.out.println("x="+ x + ";y=" + y);
		
	}

}


2、考试奖励

小明期末考试,爸爸承诺如果小明考了:
1、100 - 95分奖励小明山地自行车一辆;
2、94 - 90分奖励小明到游乐园玩一天;
3、89 - 80分奖励变形金刚一个;
4、80分一下小明被胖揍一顿;

package Example;

import java.text.DecimalFormat;

/**
 * 黄金分割
 *1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
	如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!
	你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
	请写出该比值。格式是:分子/分母。比如:29/47
 */
public class demo10 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	   double x = 1;
	   double y = 3;
	   String finalVal = "0.618034";
	   String res = "0.33";
	    double temp = 0;
	    DecimalFormat df = new DecimalFormat("0.000000");
	    
	    while(!finalVal.equals(res)) {
	     temp = x;
	     x  = y;
	     y += temp;
	     temp = x/y;
	     res = df.format(temp);
	    }
	    
       System.out.println((int)x +"/"+(int)y);
	  
	}

}

3、找出一个数的所有因数【通过Scanner输入这个数】

package Example;

import java.util.Scanner;

/**
 * 找出一个数的所有因数【通过Scanner输入这个数】
 */
public class demo3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        for(int i = 1; i <= num; i++) {
        	if(num % i == 0) {
        		System.out.println(i);
        	}
        }
	}

}


4、输入一个数,判断这个数是否是素数(质数)【通过Scanner输入这个数】

package Example;

import java.util.Scanner;

/**
 * 输入一个数,判断这个数是否是素数(质数)【通过Scanner输入这个数】
 */
public class demo4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
         Scanner sc = new Scanner(System.in);
         int num = sc.nextInt();
         boolean bool = true; 
         for(int i = 2; i < num; i++) {
        	 if(num % i ==0) {
        		 bool = false;
        		 break;
        	 }
         }
         
        if(bool) {
        	   System.out.println(num + "是素数");
        }else {
     	   System.out.println(num + "不是素数");
        }
	}

}


5、有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

package Example;

/**
 * 有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,
 * 以后每天卖剩下的一半多两个,问几天以后能卖完?
 */
public class demo5 {
	
	public static void main(String[] args) {
		int sum = 1020;
		int day = 0;
		while(sum != 0) {
			sum = (sum / 2) - 2;
			day++;
		}
		System.out.println(day);
	}

}


6、写出斐波那契数列,输出前10位

斐波那契数列又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”;

* 指的是这样一个数列:1、1、2、3、5、8、13、21、34、55……
* 其规律是从第3个数开始,每个数都等于它前两个数的和。

package Example;
/**
 * 写出斐波那契数列,输出前10位
 * 指的是这样一个数列:1、1、2、3、5、8、13、21、34、55……
 * 其规律是从第3个数开始,每个数都等于它前两个数的和。
 */
public class demo6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int a = 1;
        int b = 1;
        System.out.println(a);
        System.out.println(b);
        int num = 0;
        int i = 3;
        
        while(i <= 10) {
        	num = a + b;
        	System.out.println(num);
        	a = b;
        	b = num;
        	i++;
        }
        
	}

}

7、大马驮粮食

大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配?

package Example;

/**
 * 大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,
 * 要用100匹马,驮100石粮食,该如何调配?
 */
public class demo7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       for(int a = 0; a <= 50; a++) {
    	   for(int b = 0;b <= 100; b++) {
    		   for(int c = 0; c <= 200; c++) {
    			   if(a + b + c == 100 && a * 2 + b + c * 0.5 == 100) {
    				   System.out.print("大马=" + a + " ");
    				   System.out.print("中马=" + b + " ");
    				   System.out.print("小马=" + c + " ");
    				   System.out.println("\t");
    			   }
    		   }
    	   }
       }
	}

}

8、写出冒泡排序,数组随机生成10个数进行排序即可。

package Example;

import java.util.Random;
/*
 * 写出冒泡排序,数组随机生成10个数进行排序即可。
 */
public class demo8 {
    public static void main(String[] args) {
    	Random rd = new Random();
    	int[] nums = new int[10];
    	for(int i = 0; i < nums.length; i++) {
    		nums[i] = rd.nextInt();
    	}
    	 
       for(int a = 0; a < nums.length; a++) {
    	   for(int b = a+1; b < nums.length; b++) {
    		  if(nums[a] > nums[b]) {
    			  int temp;
    			  temp = nums[b];
    			  nums[b] = nums[a];
    			  nums[a] = temp;
    		  }
    	   }
       }
       
       for(int c = 0; c < nums.length; c++) {
    	   System.out.println(nums[c]);
       }
    }
}

9、打印菱形 

             *
           * * *
         * * * * *
      * * * * * * *
    * * * * * * * * *
       * * * * * * * 
         * * * * * 
           * * * 
             * 

package Example;
/**
 * 9、打印菱形
            *
          * * *
        * * * * *
      * * * * * * *
    * * * * * * * * *
      * * * * * * * 
        * * * * * 
          * * * 
            * 
 */
public class demo9 {

	public static void main(String[] args) {
		//打印上半部分(上半部分5行)
		for(int i = 0; i < 5; i++) {
			//打印左上角的空白部分
			for(int j = 5; j > i+1; j--) {
				System.out.print(" ");
			}
			//打印*
			for(int j = 0; j < 2*i+1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		
		//打印下半部分(下半部分4行)
		for(int i = 0; i < 4; i++) {
			//打印空白部分
			for(int j =0; j< i+1; j++) {
				System.out.print(" ");
			}
			//打印*
			for(int j = 0; j < 2 *(4-i) -1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}


   


10、黄金分割

黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,
墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子....
黄金分割数是个无理数,也就是无法表示为两个整数的比值。
0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,
我们取它的一个较精确的近似值:0.618034
有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!
1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!
你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。格式是:分子/分母。比如:29/47

package Example;

import java.text.DecimalFormat;

/**
 * 黄金分割
 *1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
	如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!
	你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
	请写出该比值。格式是:分子/分母。比如:29/47
 */
public class demo10 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	   double x = 1;
	   double y = 3;
	   String finalVal = "0.618034";
	   String res = "0.33";
	    double temp = 0;
	    DecimalFormat df = new DecimalFormat("0.000000");
	    
	    while(!finalVal.equals(res)) {
	     temp = x;
	     x  = y;
	     y += temp;
	     temp = x/y;
	     res = df.format(temp);
	    }
	    
       System.out.println((int)x +"/"+(int)y);
	  
	}

}

你可能感兴趣的:(蓝桥杯,蓝桥杯,eclipse,java)