Java语言基础(2)
来源:互联网 发布:技术推算法的步骤 编辑:程序博客网 时间:2024/06/10 20:03
1、判断闰年
package stage1;import java.util.Scanner;public class LeapyYear { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入年份:"); int year = scanner.nextInt(); scanner.close(); /*四年一闰,百年不闰,四百年再闰*/ boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; String msg = isLeapYear ? year + "是闰年" : year + "不是闰年"; System.out.println(msg); }}
2、比较for循环和递归的效率
package stage1;public class Recursive { public static void main(String[] args) { int n = 50; //获取当前时间 long time = System.currentTimeMillis(); System.out.println("fibByFor(" + n + ")=" + fibByFor(n)); System.out.println("使用for循环计算,用时:" + (System.currentTimeMillis() - time) + "毫秒"); time = System.currentTimeMillis(); System.out.println("fibByRecursive(" + n + ")=" + fibByRecursive(n)); System.out.println("使用递归计算,用时:" + (System.currentTimeMillis() - time) + "毫秒"); } //循环方式计算费氏数列 public static long fibByFor(int n) { if (n == 1 || n == 2) return 1; long f1 = 1; long f2 = 1; for (int i = 3; i <= n; i++) { f2 = f1 + f2; f1 = f2 - f1; } return f2; } //递归方式计算 public static long fibByRecursive(int n) { if (n == 1 || n == 2) return 1; return fibByRecursive(n - 1) + fibByRecursive(n - 2); }}
3、冒泡排序
package stage1;import java.util.Random;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { //创建数组 int[] arr = new int[10]; Random ran = new Random(); for (int i = 0;i < arr.length;i++) { arr[i] = ran.nextInt(100); } System.out.println(Arrays.toString(arr)); //冒泡排序 System.out.println("---------------冒泡排序 开始---------------"); for (int i = 0;i < arr.length - 1;i++) { for (int j = 0;j < arr.length - 1 - i;j++) { if (arr[j] > arr[j + 1]) { int t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } System.out.println(Arrays.toString(arr)); } System.out.println("----------------冒泡排序 结束---------------"); System.out.println(Arrays.toString(arr)); }}
4、插入排序
package stage1;import java.util.Random;import java.util.Arrays;public class InsertSort { public static void main(String[] args) { int[] arr = new int[12]; Random ran = new Random(); for (int i = 0; i < arr.length; i++) { arr[i] = ran.nextInt(100); } //插入排序 System.out.println(Arrays.toString(arr)); System.out.println("-------------插入排序 开始-------------"); for (int i = 1; i < arr.length; i++) { int k = arr[i];//取出待插入元素 //找到插入位置 int j; for (j = i - 1; j >= 0 && k < arr[j]; j--) { arr[j + 1] = arr[j];//移动元素 } //插入元素 arr[j + 1] = k; System.out.println(Arrays.toString(arr)); } System.out.println("------------插入排序 结束--------------"); System.out.println(Arrays.toString(arr)); }}
5、猜字符小游戏
package stage1;import java.util.Random;import java.util.Scanner;//猜字符public class GuessingGame { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int count = 0;//记录猜错的次数 char[] chs = generate();//生成5个字符 System.out.println(chs);//println可以输出字符数组,但不能输出int数组 /*for (int i = 0;i < chs.length;i++) { System.out.print(chs[i]); } System.out.println();*/ while (true) { System.out.println("猜吧!"); String str = scan.next().toUpperCase();//接收用户的串 if (str.equals("EXIT")) { System.out.println("下次再来"); break; } char[] input = str.toCharArray(); int[] result = check(chs,input); if (result[1] == chs.length) { int score = chs.length * 100 - count * 10; System.out.println("恭喜你,猜对了,得分"+score); break; }else { count++; System.out.println("字符对了"+result[0]+"个,位置对了"+result[1]+"个"); } } scan.close(); } //随机生成5个字符数组 public static char[] generate() { char[] chs = new char[5]; Random rand = new Random(); char[] letters = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; boolean[] flags = new boolean[letters.length]; for (int i = 0;i < chs.length;i++) { int index; do { index = rand.nextInt(letters.length); /*index = (int)(Math.random() * letters.length)*/ }while(flags[index]); chs[i] = letters[index]; flags[index] = true; } return chs; } //比较 public static int[] check(char[] chs,char[] input) { int[] result = new int[2]; for (int i = 0;i < chs.length;i++) { for (int j = 0;j < input.length;j++) { if (chs[i] == input[j]) { result[0]++; if (i == j) { result[1]++; } break; } } } return result; }}
阅读全文
1 0
- Java语言基础(2)
- java基础总结(2)----语言基础
- Java语言基础2
- 2 Java语言基础
- java编程语言基础知识点(2)
- (2)Java语言基础组成
- Java语言基础组成2
- 2 Java语言基础组成
- Java语言基础小结2
- Java语言基础(三)
- java语言基础(一)
- Java语言基础(语句)
- Java总结(语言基础)
- java总结(语言基础)
- Java语言基础(一)
- java语言基础(二)
- Java语言基础(一)
- java语言基础(二)
- 【广告算法工程师入门 19】机制设计-GFP和GSP下的策略行为与均衡分析
- java内部类的作用
- js获取项目路径
- Linux系统下的管理输入输出、管道、vim、gedit的相关用法
- 汇编
- Java语言基础(2)
- HDU
- 函数(1)
- Java-P2:数组,冒泡,快排,类练习
- HDOJ2054_A == B ?
- tarjan算法
- Java中Redis的使用
- action利用setter方法无法获取前台字段的问题
- 曹小曹博客