目录

1 判断闰年

2 计数月、日或者分钟

3 筛选素数

4 求组合数C(n,m)模板

5 全排列

6 并查集

1 判断闰年

我们知道,(1)如果是整百的年份,能被400整除的,是闰年;(2)如果不是整百的年份,能被4整除的,也是闰年。每400年,有97个闰年。鉴于此,程序可以作以下设计:

第一步,判断年份是否被400整除,能的话,就是闰年。比如1600、2000、2400年是闰年。

第二步,在第一步不成立的基础上,判断年份能否被100整除,如果是,则不是闰年。比如1900、2100、2200年不是闰年。

第三步,在第二步不成立的基础上,判断年份能否被4整除,如果是,则是闰年。比如1996、2004、2008年是闰年。

第四步,在第三步不成立的基础上,则不是闰年。比如1997、2001、2002年不是闰年。

import java.util.Scanner;//插入扫描仪public class runnian{
public static void main(String[] args)//Sting[] args别忘了写进来{
Scanner s=new Scanner(System.in);//声明扫描仪变量System.out.println("请输入年份");//系统提示输入年份int nianfen=s.nextInt();//取得下一行输入的年份值if(nianfen%400==0){System.out.println(nianfen+"年是闰年");}//判断能否被400整除else if(nianfen%100==0){System.out.println(nianfen+"年不是闰年");}//判断能否被100整除else if(nianfen%4==0){System.out.println(nianfen+"年是闰年");}//判断能否被4整除else{System.out.println(nianfen+"年不是闰年");}}}

2 计数月、日或者分钟

计算日的算法如下,小时分钟和秒就是在此基础上乘以相应的进制即可,月份就是在模板里面month++的时候顺便计数即可。


int syear,smonth,sday; //分别为结束年,月,日
int countday(int year,int month,int day){  //分别为开始的年月日int ans=0;int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};while(1){if(year==syear&&month==smonth&&day==sday){break;}day++;if(isleaf(year)&&month==2){if(day>mon[month]+1){month++;day=1;}}else{if(day>mon[month]){month++;day=1;}}if(month>12){month=1;year++;}ans++;}return ans;
}

3 筛选素数

筛选素数有许多种方法,首先是最简单的O(n^(3/2))的算法

import java.util.Scanner;public class ScannerPrimeNumber {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();boolean[] bs = new boolean[n];for (int i = 2; i < bs.length; i++) {// 从2开始for (int j = i + 1; j < bs.length; j++) {//j=i+1 因为i与j必能除尽,从i+1循环就行。if (j % i == 0) {bs[j] = true;// 因为boolean默认为false,因此在这里不再全赋值为true再把符合条件的值赋值为false// 而直接把符合条件的值赋值为true}}}for (int i = 2; i < bs.length; i++) {// 0和1不是质数,因此从2开始循环if (bs[i] == false) {System.out.println(i);}}}
}

求组合数C(n,m)模板


long long C(int n,int m){if(m==0)return1;long long ans=1;for(int i=n;i>n-m;i--)ans*=i;for(int i=m;i>1;i--)ans/=i;return ans;
}

5 全排列

vector<vector<int>> permuteUnique(vector<int>& nums) {vector<vector<int>> ret;sort(nums.begin(),nums.end());do{ret.emplace_back(nums);}while(next_permutation(nums.begin(),nums.end()));return ret;}

6 并查集


int n,m,cnt=0;
int f[10005];
int find(int x){if(f[x]==x)return x;return f[x]=find(f[x]);
}
void union(int x,int y){int a=find(x);int b=find(y);if(a!=b){f[a]=b;cnt++;}
}

蓝桥杯常用算法合集(JAVA)相关推荐

  1. 蓝桥杯基础练习合集一(C语言) 1.A+B问题2.数列排序3.十六进制转八进制4.十六进制转十进制5.十进制转十六进制

    目录 1.A+B问题 2.数列排序 3.十六进制转八进制 4.十六进制转十进制 5.十进制转十六进制 1.A+B问题 问题描述 输入A.B,输出A+B. 输入格式 输入的第一行包括两个整数,由空格分隔 ...

  2. ACM 常用算法合集

    [基础算法] 模拟算法:点击这里 数据排序:点击这里 高精度计算:点击这里 递推算法:点击这里 递归算法:点击这里 贪心算法:点击这里 分治法:点击这里 二分查找:点击这里 三分查找:点击这里 尺取法 ...

  3. 蓝桥杯 ALGO-83 算法训练 阶乘 java版

    问题描述 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中:而35!就更大了,它已经无法存放在一个浮点型变量 ...

  4. 蓝桥杯 ALGO-21算法训练 装箱问题 java版

    问题描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩 ...

  5. 蓝桥杯常用算法知识点:【递归】n个球中取m个,有多少种取法?

    package com.aiqiongdiao; //n个球中取m个不放回,求有多少种取法? public class Main { public static int f(int n,int m){ ...

  6. 蓝桥杯陶陶摘苹果C语言,Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2

    算法提高 陶陶摘苹果2 时间限制:1.0s 内存限制:256.0MB 问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳, ...

  7. 蓝桥杯 试题 算法训练 筛选号码 Java

    蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...

  8. 密码锁 java接口_Java实现 蓝桥杯VIP 算法提高 密码锁

    算法提高 题目 2 密码锁 时间限制:1.0s 内存限制:1.0GB 问题描述 你获得了一个据说是古代玛雅人制作的箱子.你非常想打开箱子看看里面有什么东西,但是不幸的是,正如所有故事里一样,神秘的箱子 ...

  9. 第十三届蓝桥杯模拟赛第二期JAVA组个人题解

    第十三届蓝桥杯模拟赛第二期JAVA组个人题解 文章目录 第十三届蓝桥杯模拟赛第二期JAVA组个人题解 题目1 题目2 题目3 题目4 题目5 题目6 题目7 题目8 题目9 题目10 题目1 小蓝的I ...

最新文章

  1. 非自回归也能预训练:基于插入的硬约束生成模型预训练方法
  2. h5是什么 www.php.cn,html meta标签的作用是什么?
  3. C/C++ scanf 函数中%s 和%c 的简单差别
  4. mysql 删除not null_从MySQL的列中删除NOT NULL限制?
  5. 7-9 N个数求和 (20 分)
  6. HashMap底层分析_put添加元素
  7. 配置classpath,引入jar包
  8. WriteFile API简介
  9. 【机房收费系统】---上下机
  10. opencv python安装 centos_在Ubuntu中安装OpenCV-Python
  11. python学习笔记15-执行环境
  12. Linux7.2虚拟机连接电脑相关配置
  13. RGB格式详解(二)--索引格式
  14. php加载memcache模块
  15. ubuntu14.04 下 mysql 存储目录迁移
  16. 贪吃蛇(C语言实现)
  17. matlab 噪声协方差矩阵,已知各个通道的信号的协方差矩阵(covariance matrix), 模拟各个通道的噪声信号...
  18. 基于JAVA春运出行铁路路线规划推荐系统计算机毕业设计源码+系统+lw文档+部署
  19. ​下一代无服务器的发展形态:Serverless2.0
  20. Python之九宫格输入

热门文章

  1. 在 SQL 中计算分页元数据,无需额外的往返
  2. 霍夫线变换,霍夫圆变化
  3. rtems 文件系统(15)-jffs2 研究(2)
  4. 明华澳汉读卡器安装插件,便捷读身份证,就诊卡医保卡
  5. YCSB测试levedb
  6. mysql 第11章 视图
  7. MediaDevices html5,HTML5如何通过navigator.mediaDevices.getUserMedia调用手机摄像头
  8. MYECLIPSE注册机
  9. 字节跳动必问面试题——通用型业务解决方案设计
  10. 转行做程序员之前必须考虑的三件事