java算法汇总(一)
1.有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子涨到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月兔子总数为多少?
程序分析:斐波那契数列 0.1.1.2.3.5.8.13.21
/**
* 斐波那契数列
* @param months
* @return
*/
public static int fib(int months) {
if(months==0){
return 0;
}else if(months==1){
return 1;
}else{
return fib(months - 1) + fib(months - 2);
}
}
2.判断101~200之间的有多少个素数,并输出所有素数
程序分析:素数判断方法 除去一和本身 没有其他因数
/**
* 求 A - B 之间的素数
*/
public static void zs(int start,int end){
int count = 0;
List<Integer> zsList = new ArrayList<>();
for(int i = start;i<=end;i++){
if(isZs(i)){
count++;
zsList.add(i);
}
}
if(zsList!=null&&zsList.size()>0){
for (Integer integer : zsList) {
System.out.println(integer);
}
}
System.out.println("总数:"+count);
} public static boolean isZs(int num){
//除了 1 和 他本身没有其他因数
for(int i= 2;i<num;i++){
if(num%i==0){
return false;
}
}
return true;
}
3.打印所有的水仙花数
程序分析:水仙花数指 一个三位数,每位上面的数的立方和等于这个三位数。
/**
* 三位数水仙花
*/
public static void sxh(){
for (int i = 100; i < 1000; i++) {
int bw = i/100;
int sw = i/10%10;
int gw = i%10;
if((bw*bw*bw + sw*sw*sw + gw*gw*gw)==i){
System.out.println("水仙花"+i);
}
}
}
4.将一个正整数分解质因数 eg: 90 = 2*3*3*5
程序分析:1、如果n是质数,就直接结束,打印出来就好
2、如果i能整除n,就打印i,然后更新n = n / i;递归
3、如果i不能整除n,就i++
public static void fjzys(int number) {
// 递归实现
for (int i = 2; i <= number; i++) {
if (i == number) {
System.out.print(i);
return;
}
if (number > i && (number % i == 0)) {
System.out.print(i + "*");
fjzys(number / i);
break;
}
}
}
5.求两个正整数m,n的最大公约数,最小公倍数
java算法汇总(一)的更多相关文章
- (转)JAVA排序汇总
JAVA排序汇总 package com.softeem.jbs.lesson4; import java.util.Random; /** * 排序测试类 * * 排序算法的分类如下: * 1.插入 ...
- 排序算法汇总(C/C++实现)
前言: 本人自接触算法近2年以来,在不断学习中越多地发觉各种算法中的美妙.之所以在这方面过多的投入,主要还是基于自身对高级程序设计的热爱,对数学的沉迷.回想一下,先后也曾参加过ACM大大小小的 ...
- JAVA算法系列 冒泡排序
java算法系列之排序 手写冒泡 冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 O(n^2),同时本例与选择排序进行了比较,选择排序又叫直 ...
- JAVA算法系列 快速排序
java算法系列之排序 手写快排 首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,i 和 ...
- java算法 蓝桥杯 乘法运算
问题描述 编制一个乘法运算的程序. 从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出. 输入格式 输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99). 输出格式 输出为4行 ...
- java算法 蓝桥杯 扶老奶奶街
一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中 ...
- java算法 蓝桥杯 高精度加法
问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263.要想计算更加规模的数,就要用软件来扩展了,比如用数组或 ...
- java算法 蓝桥杯 格子位置
问题描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中,与格子(i,j)同行.同列.同一对角线的所有格子的位置. 输入格式 输入共三 ...
- Java设计模式汇总
Java设计模式汇总 设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式. ...
随机推荐
- 安装第三方包&查看python版本/第三方包版本
安装第三方包时,经常需要查看python版本,以及是否安装第三方包及版本,每次都要百度下指令. 故小编整理了下安装/卸载第三方包,查看python/第三包的指令,具体如下: 一.python安装/卸载 ...
- [题解]Print a 1337-string...-数学(codeforces 1202D)
题目链接:https://codeforces.com/problemset/problem/1202/D 题意: 构造一串只由 ‘1’,‘3’,‘7’ 组成的字符串,使其 ‘1337’ 子序列数量为 ...
- Appium移动端自动化:Api接口详解
滑动操作与拖拽操作 # 滚动处理 # elementObj1 目标滚动元素,elementObj2 起始滚动元素 # 底层通过action操作,与web ui相反,origin_el为目标元素,des ...
- Windows重置网络命令
我们在日常使用电脑的时候会碰到网络异常,网络故障,想要针对性地去解决是很困难的. 有时候可能查遍了资料,花了大量时间,怎么搞都还是搞不定.所以,这次直接给大家分享一个通过重置网络来解决所有问题的方法. ...
- undefined,null,!,!=之间的关系
1.!和!=的关系 2.null 和0的关系
- 55.Top K Frequent Elements(出现次数最多的k个元素)
Level: Medium 题目描述: Given a non-empty array of integers, return the k most frequent elements. Exam ...
- gym/102253C Colorful Tree 树上计数
题意:有一颗数,每个点有一个颜色,定义两点之间的距离为两点路径之间不同颜色的数目,问所有路径的距离和是多少? 思路:每个颜色的贡献为路径中有这个颜色的路径数.先假设所有路径都会经过一种颜色,再减去不会 ...
- 【转】Java里如何实现线程间通信
正常情况下,每个子线程完成各自的任务就可以结束了.不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了. 本文涉及到的知识点:thread.join(), object.w ...
- 力扣——remove element(删除元素) python实现
题目描述: 中文: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...
- webpack (1)
node_modules/.bin/webpack 用webpack 打包 因为我们没有全局安装webpack 所以要用到这条命令 创建html npm install --save-dev html ...