第一范文网 - 专业文章范例文档资料分享平台

JAVA基础

来源:用户分享 时间:2025/8/8 3:29:10 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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基础 的文档
JAVA基础.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1cnhk4ystv03gjy5z8aq_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top