你好呀,我是灰小猿,一个超会写bug的程序猿!
欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!
标题:组素数
素数就是不能再进行等分的数,比如:2、3、5、7、11等

9=3*3 说明它可以3等分,因而不是素数

我们国家在1949年建国,如果只给你1、9、4、9这4个数字卡片,可以随意摆放它们的先后顺序,(但卡片不能倒着摆放啊,我们不是在做脑筋急转弯)

那么你能组成多少个4位的素数呢?

比如1949、4919都符合要求

请你提交能组成的4位素数的个数,不要罗列这些素数!!

注意:不要提交解答过程,或其他的辅助说明文字

考察重点:
递归和回溯算法下对元素的全排列、素数的判断、重复元素的去重

在这道题中我们需要重点掌握的就是递归和回溯算法下对元素的全排列,根据该思想对1、9、4、9这四个数进行全排列,获取到排列结果,然后对排列结果进行判断,判断其是不是素数,之后记录符合要求的素数的个数即可。

答案源码:
package 一三年省赛真题;

import java.util.HashSet;
import java.util.Set;

public class Year2013_t2 {

static Set<Integer> set = new HashSet<Integer>();   //定义hash集合,存放符合要求的数值
/*** 数组元素的全排列* @param arr 数据数组* @param n  从第几个元素开始排列* */
public static void arrange(int[] arr,int n) {//如果排列的数值的序号等于数组的长度,说明最后一个元素已经确定if (n==arr.length) {int num = arr[0]*1000 + arr[1]*100 + arr[2]*10 + arr[3];//如果是素数if (check(num)==num) {set.add(num);  //将数值添加到集合中,并去重}}for (int i = n; i < arr.length; i++) {//数值交换int t = arr[n];arr[n] = arr[i];arr[i] = t;arrange(arr, n+1);    //确定下一个数值t = arr[n];arr[n] = arr[i];arr[i] = t;}
} /*** 判断一个数是不是素数* @return 是素数就返回该数,不是就返回0
*/
private static int check(int num) {for (int i = 2; i <= Math.sqrt(num); i++) {if (num % i == 0) {return 0;}}return num;
}public static void main(String[] args) {int[] array = {1,9,4,9};arrange(array, 0);System.out.println(set.size()); //输出存放在集合中的符合要求的数据长度
}

}

输出样例:

其中有不足或者改进的地方,还希望小伙伴留言提出,一起学习!
感兴趣的小伙伴可以关注专栏!
灰小猿陪你一起进步!

【每日蓝桥】2、一三年省赛JavaC组真题“组素数”相关推荐

  1. 【每日蓝桥】2、一三年省赛Java组真题“组素数”

    你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏"每日蓝桥",该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想.数据结构等内容, ...

  2. java dfs算法蓝桥杯题_【蓝桥杯省赛JavaB组真题详解】四平方和(2016)_疼疼蛇的博客-CSDN博客...

    原文作者:疼疼蛇 原文标题:[蓝桥杯省赛JavaB组真题详解]四平方和(2016) 发布时间:2021-02-26 15:00:01 题目描述 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数 ...

  3. 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解

    ============================== 2019-2021蓝桥杯C++ C组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解 2020第十一届蓝桥杯大赛软件类省 ...

  4. 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解

    ========================================== 2019-2021蓝桥杯C++ B组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解 2020第 ...

  5. 2021第十二届蓝桥杯大赛软件赛省赛C++ C组真题题解

    ============================== 2019-2021蓝桥杯C++ C组真题题解: 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解 2020第十一届蓝桥杯大赛软件类省 ...

  6. 第九届蓝桥杯(省赛)C++C组真题题解

    文章目录 题目链接 C组真题(剩余题目同B组真题相同,已给出B组真题题目链接) 题目结构 第一题 哪天返回 第二题 猴子分香蕉 第五题 书号验证 第六题 稍小分数 第七题 次数差 第八题 等腰三角形 ...

  7. 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)

    目录 第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾) 试题 A: 九进制转十进制 试题 B: 顺子日期 试题 C: 刷题统计 试题 D: 修剪灌木 试题 E: X 进制减法 试题 F: ...

  8. 蓝桥杯历年省赛JAVA-B组真题汇总及题目详解

    蓝桥杯 历年省赛JAVA-B组真题汇总及题目详解 题目大致介绍: 第一题到第三题以及第六题是结果填空,方法不限得到最后结果就行. 第四题和第五题是代码填空题,主要考察算法基本功和编程基本功. 第八题到 ...

  9. 第六届蓝桥杯大赛个人赛省赛Java B组真题

    文章目录 第六届蓝桥杯大赛个人赛省赛Java B组真题 1. 三角形面积(结果填空) 2. 立方自变身(结果填空) 3. 三羊献瑞(结果填空) 4. 循环节长度(代码填空) 5. 九数组分数(代码填空 ...

最新文章

  1. plus rss.php,dedecms织梦rss输出改成全文输出
  2. monty python喜剧-看美剧学托福:最受美国人喜欢的100部美剧
  3. @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  4. TESLA CENTER
  5. java书籍_学习Java最好的10本书,从入门到精通
  6. 实现输入一个字符串,分别将大写字母、小写字母、数字、其他字符存到列表里面并且输出列表
  7. github上打包的样式为什么在预览的时候,出现404
  8. windows安装composer方法和使用方法
  9. ICML 2022 第一届关于新冠病毒的智慧医疗研讨会
  10. Atitit 数据记录存储方式 索引组织表 堆组织表 储方式 InnoDB 引擎把数据放在主键索引上,其他索引上保存的是主键 id。这种方式,我们称之为索引组织表(Index Organizi
  11. 汇编语言下载安装及使用(hello world,仅供学习参考)
  12. 计算机图形学-样条曲线Spline
  13. python练习:重命名大量图片
  14. snipaste如何滚动截图_试用了20个截图工具,我写下这份超全的软件指南。?
  15. 烟台移动dns网关_如何设置移动宽带DNS和IP地址
  16. 2021年高压电工考试技巧及高压电工模拟考试
  17. Everything+Wox介绍和使用方式
  18. 厦门大学计算机考研资料汇总
  19. ISIS-P2P网络的LSDB更新
  20. 业务连续性方案概述【9】

热门文章

  1. LeetCode-25:K 个一组翻转链表
  2. linux更新软件载入缓存后停止_linux 中缓存怎样清除
  3. java etcd api_在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听...
  4. java kafka 消费_java利用kafka生产消费消息
  5. vuex状态持久化_Vuex持久化存储之vuex-persist
  6. createprocess重启程序_win32取CreateProcess启动程序的返回值
  7. 引用管理器没有程序集_程序员必背英语单词不会,就别说你是程序员!
  8. c语言编译前端,c语言编译器前端的设计与实现.doc
  9. eva每一集片尾曲是谁唱的_求EVA新世纪福音战士的主题曲和片尾曲名字!!
  10. 对应到对象 数据库驼峰_从源码角度理解Mybatis字段映射(一) - 驼峰式命名