解题思路:

1.读取输入的单词。
2.创建一个长度为26的数组counts用于统计每个字母的出现次数。初始将所有字母的计数设置为0。
3.遍历单词中的每个字符,将每个字母的出现次数加1到counts数组的对应位置上。
4.找出counts数组中的最大值maxCount和最小值minCount。
5.计算maxCount和minCount的差值diff。
6.创建一个方法isPrime,用于判断一个数是否是质数。在实现isPrime方法时,可以使用简单的迭代来检查是否有除了1和它本身以外的其他因子,如果有则不是质数,否则是质数。
7.判断diff是否为质数,如果是,则输出"Lucky Word"和diff的值;否则输出"No Answer"和0。

注意事项:
当一个数不是质数时,必定存在两个约数,一个大于等于sqrt(n),另一个小于sqrt(n)。

利用这种特性,可以对方法1进行改进,只判断数n能否被小于sqrt(n)的数整除。

参考代码:

import java.util.Scanner;


public class LuckyWord {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);//键盘录入
       String word = sc.nextLine();//输入的单词

       //建立数组,统计字母出现的次数
       int[] counts = new int[26];
       //word.toCharArray() 将字符串转换为字符数组
       for (char c : word.toCharArray()) {
           counts[c - 'a']++;
       }
       int maxCount = 0;//用于统计counts数组中的最大值maxCount
       //用于初始化 minCount 变量,
       // 将其设置为整数的最大值 Integer.MAX_VALUE
       //目的是为了确保在遍历 counts 数组时可以正确地找到出现次数最少的字母
       int minCount = Integer.MAX_VALUE;
       for (int count : counts) {
           if (count > maxCount) {
               maxCount = count;
           }
           if (count < minCount && count > 0) {
               minCount = count;
           }
       }
       //计算最大与最小之间的差值
       int diff = maxCount - minCount;

       //引用自定义的方法,用于判别是否为质数
       if (isPrime(diff)) {
           System.out.println("Lucky Word");
           System.out.println(diff);
       } else {
           System.out.println("No Answer");
           System.out.println(0);
       }

   //释放资源
       sc.close();
}

   //判别质数的方法
   private static boolean isPrime(int n) {
       if (n <= 1) {
           return false;
       }
       for (int i = 2; i <= Math.sqrt(n); i++) {
           if (n % i == 0) {
               return false;
           }
       }
       return true;
   }
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论