Java 常见笔试程序题——不定期更新

1.冒泡排序

package com.xue.boke;

import java.util.Arrays;
import java.util.Scanner;
/**
 * 2018/12/8
 * @author xqp
 *按从大到小将输入的值冒泡排序:
 */
public class Sort {
	public static void sort(){
		Scanner input = new Scanner(System.in);
		int sort[] = new int[10];
		int temp;
		System.out.println("请输入10以逗号结尾的数据例如1,2,3...:");
		String s1 = input.nextLine();
		String[] s2 = s1.split(",");
		for(int i = 0;i< sort.length;i++){
			sort[i] = Integer.parseInt(s2[i]);
		}
		for(int i = 0;i < sort.length - 1;i++){
			for(int j = 0;j<sort.length-i-1;j++){
				if(sort[j]<sort[j+1]){
					temp = sort[j];
					sort[j] = sort[j+1];
					sort[j+1] = temp;
					
				}
			}
		}
		System.out.println("排序后的顺序为:");
		System.out.println(Arrays.toString(sort));
		for(int i = 0;i<sort.length;i++){
			System.out.print(sort[i]+" ");
		}
	}
	public static void main(String[] args) {
		sort();
	}
}

结果:

2.二分法查询指定元素所在位置:

package com.xue.boke;
/**
 * 二分法查询指定元素的位置
 * @author xqp
 *
 */
public class Dichotomy {
	public static int getPos(int[] A,int n,int val){
		int low = 0 , high = n - 1 , mid;
		if(n == 0 || A == null)
			return -1;
		while(low <= high){
			mid = (low + high) /2;
			if(val == A[mid]){
				for(int j = mid ;j >= 0; j-- ){
					if(A[j] != A[mid]){
						mid = j + 1;
						break;
					}
					else if(A[j] == A[mid]){
						mid = j;
						continue;
					}
				}
				return mid;
			}else if(val < A[mid])
				high = mid -1;
			else 
				low = mid + 1;
		}
		return -1;
	}
	public static void main(String[] args) {
		int A[] = {1,25,25,25,45,55,68,69,130};
		int val = 69;
		int n = A.length;
		int result = getPos(A,n,val);
		System.out.println("结果为:"+result);
	}
}

结果:

3.水仙花问题

package com.xue.boke;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

/**
 * 水仙花数问题:
 * @author xqp
 *
 */
public class Narcissistic {
	public static void main(String[] args) {
		Scanner san = new Scanner(System.in);
		System.out.println("请输入min值:");
		int min = san.nextInt();
		System.out.println("请输入max值:");
		int max = san.nextInt();
		List<Integer> list = new ArrayList<>();
		for(int mid = min ; mid < max ; mid++){
			int a = mid/100;
			int b = mid%10;
			int c = mid%100/10;
			int sum = a*a*a + b*b*b + c*c*c;
			if(sum == mid){
				list.add(sum);
			}
		}
		System.out.println("您所输入的三位数当中有"+list.size());
		System.out.println("个水仙花数,他们是"+list.toString());
	}
}

结果:

4.斐波那契数列(新生兔子问题)

package com.xue.boke;
/**
 * 斐波那契数列(新生兔子序列):
 * 
 */
public class Fibonacci {
	/**
	 * 传统方法
	 */
	public static int  fun1(int M){
		int f1 = 1,f2 = 1,f;
		for(int i = 3;i<=M;i++){
			f = f2;
			f2 = f1 +f2;
			f1 = f;
		}
		return f2;
	}
	/**
	 * 递归做法
	 */
	public static int fun2(int M){
		if(M == 1 || M == 2){
			return 1;
		}else{
			return fun2(M - 1) + fun2(M - 2);
		}	
	}
	public static void main(String[] args) {
		System.out.println("第24个月一共有"+fun1(24)+"只兔子");
		System.out.println("第24个月一共有"+fun2(24)+"只兔子");
	}
}

结果:

5.打印乘法口诀

package com.xue.boke;
/**
 * 打印乘法口诀
 */
public class Multiplication {
	public static void main(String[] args) {
		for(int i = 1;i<=9;i++){
			for(int j = 1; j<=i;j++){
				System.out.print(i+"*"+j+"="+i*j+" ");
			}
			System.out.println();
		}
	}
}

结果:

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值