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设计模式汇总 设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式. ...
随机推荐
- js中浅谈this对象(未补充完整)
什么是this? 1.javascript语言中,一切皆为对象(除了 undefined 和 null 之外),运行环境也是对象,所以函数都是在某个对象之中运行,this就是这个对象(环境). 2.t ...
- [CF1202B] You Are Given a Decimal String(最短路)
Description 今天突然想来发一篇博客防死 [Portal][https://vjudge.net/problem/2650668/origin] 定义被x-y生成器生成的序列为, 一开始有一 ...
- websocket 服务搭建
链接过程 前端 1.CREATED WEBSOCKE 2.ONOPEN 3.ONMESSAGE 服务端 1.收到request 2.给客户端发送消息,生成id //msg { type: " ...
- FZU 2059 MM
Description There is a array contain N(1<N<=100000) numbers. Now give you M(1<M<10000) q ...
- 58.Partition Equal Subset Sum(判断一个数组是否可以分成和相等的两个数组)
Level: Medium 题目描述: Given a non-empty array containing only positive integers, find if the array c ...
- IE的debug工具对程序进行debug跟踪JS代码
2015/8/31 (其他的:显示zjfy_app_sys_ip.html,只需关闭启用保护模式) 显示ie的debug,F12-->Ctrl + P 扩展:第一步,在程序中设置断点,如图所示左 ...
- 2019-9-2-win10-uwp-切换主题
title author date CreateTime categories win10 uwp 切换主题 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 1 ...
- 新旧Django版本中urls与path的区别
from django.conf.urls import url from . import view urlpatterns = [ url(r'^hello$', view.hello),] 新版 ...
- 十五、API请求接口-远程服务器返回错误: (400) 错误的请求错误
一.远程服务器返回错误: (400) 错误的请求错误 捕获异常查看具体错误 using Newtonsoft.Json; using System; using System.Collections. ...
- 以python为例讲解闭包机制
以python为例讲解闭包机制 缘起 在学习JS的过程中,总是无可避免的接触到闭包机制,尤其是接触到react后,其函数式的编程思想更是将闭包发扬光大,作为函数式编程的重要语法结构,python自然也 ...