算法篇---java算法应用
算法应用之百钱买白鸡
案列说明:主要内容是:公鸡5元一只,母鸡3元一只,小鸡1元三只,问100元怎样可以买100鸡?
思想:想要实现此算法,只要明白各种条件的关系即可,而且知道公鸡最多买20只,母鸡最多买33只,小鸡最多买100只,这样买各种鸡的钱总为100,元,鸡的只数也是100;
实现代码:
package 算法应用;
/**
*
* @author Administrator
*
*/
public class BQMJ {
public static void main(String[] args) {
int cock,hen,chicken=0;
for(cock=0;cock<=19;cock++){
for(hen=0;hen<=33;hen++){
chicken=100-cock-hen;
int p;
p=chicken%3;
if(((5*cock+3*hen+chicken/3)==100)&&(p==0)){
System.out.print(" 可以买公鸡的只数:"+cock);
System.out.print(" 可以买母鸡的只数:"+hen);
System.out.print(" 可以买小鸡的只数:"+chicken);
System.out.println("\n");
}
} }
}
}
运行结果:

算法应用之韩信点兵
案列说明:韩信带兵不足百人,3人一行排列多一人,7人一行排列少两人,5人一行正好,本例是计算韩信究竟点了多少兵?
想法:对于韩信点兵算法,只需将7人少2人转换7人多5人,这样解决问题的方法就很明显了,再限定人数不多于100即可。
实现代码:
package 算法应用;
public class Hxin {
public static void main(String[] args){
int a=0,b=0,c=0,preson; //定义总人数和各种站法的剩余人数
for(preson=0;preson<100;preson++){
a=preson%3; //每排三人剩余人数
b=preson%7; //每排七人的剩余人数
c=preson%5; //每排五人的剩余人数
if(a==1&&b==5&&c==0){ //都符合条件时的人数
System.out.println("韩信带的兵数是:"+preson);
}
}
}
}
得出结果为:40人
算法应用之斐波那契数列
说明:斐波那契数列的定义:它的第一项和第二项均为1,以后各项都为前两项之和
难点:如何设计好循环
实现代码:
package 算法应用;
import java.util.Scanner;
public class Fbo {
private static void f(int x){
int f1=1,f2=1,i=3;
if(x==1)System.out.print(f1);
if(x==2)System.out.print(f1+" "+f2);
if(x>=3){ //求位置大于三的数列
System.out.print(f1+" "+f2);
while(x>=i){ //求数列
f1=f2+f1; //求两项之和
System.out.print(" "+f1);
i++;
f2=f2+f1;
System.out.print(" "+f2);
}
}
}
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入你想查看的斐波那契数列个数:");
int num=s.nextInt();
System.out.println("你想看的斐波那契数列:");
f(num/2+1);
}
}
运行结果:

算法应用之汉诺塔
案列说明:汉诺塔问题是一个古典的数学问题,内容是:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
难点:将n个盘子从一个座移到另一个座上,这是每个移动者要做的,除去第一个移动者外,其余都要命令其他的移动者,就是第一个移动者开始,任务层层下放,最后将一个盘子从一个座移到另一个座上,这是第一个移动者自己做的工作,
实现代码:
package 算法应用;
import java.util.Scanner;
public class Hanoi { private static void move(char x,char y){
System.out.printf("%c-->%c",x,y);
System.out.print("\n");
}
private static void hanoit(int n,char one,char two,char three){ //将n个盘子从第一座借助第二座移到第三座
if(n==1){ //如果只有一个盘子
move(one,three);
}
else{
hanoit(n-1,one,three,two); //将一上的盘子借助三移到二上
move(one,three);
hanoit(n-1,two,one,three); //将二上的盘子借助一移到三上
}
}
public static void main(String[] args) {
int m;
System.out.println("请输入你要移动的盘子数:");
Scanner s=new Scanner(System.in);
m=s.nextInt();
System.out.println("移动"+m+"个盘子的步骤如下");
hanoit(m,'A','B','C'); }
}
运行结果:

算法篇---java算法应用的更多相关文章
- 算法篇---java经典问题!!!
问题一:==与equal的区别? ==和 equals 都是比较的,而前者是运算符,后者则是一个方法,基本数据类型和引用数据类型都可以使用运算符==,而只有引用类型数据才可以使用 equals,下面具 ...
- 蓝桥杯算法训练 java算法 表达式求值
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...
- 二级py--day4 数据结构与算法篇
二级py--day4 数据结构与算法篇 1.算法的基本特征:可行性.确定性.有穷性.拥有足够的情报 2.算法的设计要求包括效率与低存储量,既要考虑算法的时间复杂度和空间复杂度 3.算法的优劣:与算法描 ...
- 算法篇(前序)——Java的集合
菜鸟拙见,望请纠正:附上JDK参考文档(中文文档和英文文档):链接:https://pan.baidu.com/s/14KDmCtQxeGCViq7e0zENjA 密码:e9xs 以及算法篇全文链接 ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,循环控制及其优化
上两篇博客 8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现 研究了递归方法实现回溯,解决N皇后问题,下面我们来 ...
- 查找算法(Java实现)
1.二分查找算法 package other; public class BinarySearch { /* * 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据 */ p ...
- Jvm垃圾回收器(算法篇)
在<Jvm垃圾回收器(基础篇)>中我们主要学习了判断对象是否存活还是死亡?两种基础的垃圾回收算法:引用计数法.可达性分析算法.以及Java引用的4种分类:强引用.软引用.弱引用.虚引用.和 ...
- 对一致性Hash算法及java实现(转)
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
随机推荐
- Config程序配置文件操作实践进阶之ConfigurationSectionGroup
今天又进一步对System.Configuration下的ConfigurationSectionGroup类及相关的类与方法进行了研究.发现要构建多层次嵌套的XML标签 则必须用到Configura ...
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
ExpandoObject与DynamicObject的使用 using ImpromptuInterface; using System; using System.Dynamic; names ...
- golang学习笔记 ---TCMalloc
图解 TCMalloc 前言 TCMalloc 是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算法进行内存分配.它具有现代化内存分配器的基本特征:对抗 ...
- 字符集不同导致的ORA-00972
使用ssh登录RAC的两个节点,分别执行相同的sql语句,发现其中一个报错ora-00972: 检查后发现,左侧节点的客户端使用的字符集是SecureCRT的默认字符集,右侧使用的是UTF-8
- Oracle 12C -- Identity Columns(标识列)
Identity Columns很适合数据库中需要"surrogate keys"的场景.依赖sequence产生器,每行的标识列会被赋予一个自增或自减的值.缺省,标识列在创建的时 ...
- 基于TransactionScope类的分布式隐式事务
System.Transactions 命名空间中除了上一节中提到的基于 Transaction 类的显式编程模型,还提供使用 TransactionScope 类的隐式编程模型,它与显示编程模型相比 ...
- scrapy定时执行抓取任务
在ubuntu环境下,使用scrapy定时执行抓取任务,由于scrapy本身没有提供定时执行的功能,所以采用了crontab的方式进行定时执行: 首先编写要执行的命令脚本cron.sh #! /bin ...
- [LintCode] N-Queens
N-Queens The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no tw ...
- ASP.NET CORE中控制器内return HTML 内容自动编码问题
以前ASP.NET MVC中在控制器中直接 return Content( "<h1>测试测试</h1>"); 在前台VIEW上就显示加粗的文字了,但是在A ...
- [tools]hugo&github构建静态网站/百度统计
hugo/github构建网站基本原理 1.hugo是一个静态化的工具,你写md,然后他把md转换成对应样式的html, 2.并给html嵌入百度统计的script.然后你将html放到github上 ...