云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > JAVA基础

JAVA基础

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 0:37:24

24. while (true) {

25. String inputStr =

scanner.next().trim().toUpperCase();

26. if (\

27. System.out.println(\谢谢你的尝试,再见!\

28. break; 29. } 30.

31. char[] input = inputStr.toCharArray(); 32. int[] result = check(chs, input); 33. if (result[0] == level) {

34. score = 100 * level - score * 10;

35. System.out.println(\恭喜你猜对了!你的得分是:\36. break; 37. } else {

38. System.out.println(\你猜对\result[1] + \个字符,其中\

39. + result[0] + \个字符的位置正确!(总次数=\,exit——退出)\40. score++; 41. } 42. } 43.

44. scanner.close(); 45. } 46.

47. public static void generate(char[] chs) { 48. 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' };

49. boolean[] flags = new boolean[letters.length]; 50. for (int i = 0; i < chs.length; i++) { 51. int index; 52. do {

53. index = RandomUtils.nextInt(letters.length); 54. } while (flags[index]); 55. chs[i] = letters[index]; 56. flags[index] = true; 57. } 58. } 59.

60. public static int[] check(char[] chs, char[] input) {

61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 隐藏

int[] result = new int[2];

// result[0]: 存储正确的位置个数 // result[1]: 存储正确的字符个数

for (int i = 0; i < input.length; i++) { for (int j = 0; j < chs.length; j++) { if (input[i] == chs[j]) { result[1]++; if (i == j) { result[0]++; }

break; } } }

return result; } }

3 质数问题(选做)

3.1 问题

求某个范围内所有质数和质数的个数。用户输入2到某个范围的,系统输出这个范围内的所有质数和质数的个数, 质数是指只有1和它本身两个约数的数。控制台输出情况如图-38所示:

图-38

3.2 方案

系统使用双层for循环判断某个数是否为水质数,外层循环确保每个用户输入的范围内的数都判断到,代码如下所示:

1. for (int n = 2; n <= max; n++) {}

里层循环判断某个数是否为质数。判断数n是否为质数,让n除以2到n的平方根之间的每一个数,如果n能被2到n(n大于2)的平方根之间的 某个数整除,则说明n不是素数,否则n一定是素数。如果一个数不是素数,它一定能找到两个数化成乘积,如果其中一个大于平方根,那么必定能找到一个小于平 方根的数和它成对,例如81的平方根是9,那只需要从2试到9就可以了,因为超过平方根的结果会比平方根小。代码如下所示: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

int m = (int) Math.sqrt(n); int i = 2;

for (; i <= m; i++) { if (n % i == 0) break; }

if (i > m) {

System.out.print(n + \ if (++numOfPrime % 10 == 0) System.out.println(); }

3.3 实现

系统代码实现如下: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

import java.util.Scanner; public class PrimeNumber {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in); System.out.print(\请输入查找质数的范围:2~\ int max = scanner.nextInt(); scanner.close(); int numOfPrime = 0;

for (int n = 2; n <= max; n++) { // 判断n是否是质数

int m = (int) Math.sqrt(n); int i = 2;

for (; i <= m; i++) { if (n % i == 0) break; }

if (i > m) {

System.out.print(n + \ if (++numOfPrime % 10 == 0)

20. 21. 22. 23. 24. 25. 隐藏

System.out.println(); } }

System.out.println(\共有\个质数\ } }

3.4 扩展

求两个整数的最大公约数。由用户输入2个正整数,系统求出这两个正整数的最大公约数,并输出。

注:最大公约数,指某几个整数共有因子中最大的一个。 如果一个数既是数A的约数,又是数B的约数,称为A,B的公约数;而A,B的公约数中最大的一个(可以包括AB自身)称为AB的最大公约数。 系统交互过程如图-39所示:

图-39

系统代码实现如下: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

import java.util.Scanner; public class CommonDivisor {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in); System.out.println(\请输入第一个整数:\ int first = scanner.nextInt();

System.out.println(\请输入第二个整数:\ int second = scanner.nextInt(); scanner.close();

// 从两个整数中较小的数开始

int start = first > second ? second : first;

搜索更多关于: JAVA基础 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

24. while (true) { 25. String inputStr = scanner.next().trim().toUpperCase(); 26. if (\27. System.out.println(\谢谢你的尝试,再见!\28. break; 29. } 30. 31. char[] input = inputStr.toCharArray(); 32. int[] result = check(chs, input); 33. if (result[0]

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com