算法应用之百钱买白鸡

案列说明:主要内容是:公鸡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算法应用的更多相关文章

  1. 算法篇---java经典问题!!!

    问题一:==与equal的区别? ==和 equals 都是比较的,而前者是运算符,后者则是一个方法,基本数据类型和引用数据类型都可以使用运算符==,而只有引用类型数据才可以使用 equals,下面具 ...

  2. 蓝桥杯算法训练 java算法 表达式求值

    问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...

  3. 二级py--day4 数据结构与算法篇

    二级py--day4 数据结构与算法篇 1.算法的基本特征:可行性.确定性.有穷性.拥有足够的情报 2.算法的设计要求包括效率与低存储量,既要考虑算法的时间复杂度和空间复杂度 3.算法的优劣:与算法描 ...

  4. 算法篇(前序)——Java的集合

    菜鸟拙见,望请纠正:附上JDK参考文档(中文文档和英文文档):链接:https://pan.baidu.com/s/14KDmCtQxeGCViq7e0zENjA 密码:e9xs  以及算法篇全文链接 ...

  5. 对一致性Hash算法,Java代码实现的深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

  6. 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,循环控制及其优化

    上两篇博客 8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案 8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现 研究了递归方法实现回溯,解决N皇后问题,下面我们来 ...

  7. 查找算法(Java实现)

    1.二分查找算法 package other; public class BinarySearch { /* * 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据 */ p ...

  8. Jvm垃圾回收器(算法篇)

    在<Jvm垃圾回收器(基础篇)>中我们主要学习了判断对象是否存活还是死亡?两种基础的垃圾回收算法:引用计数法.可达性分析算法.以及Java引用的4种分类:强引用.软引用.弱引用.虚引用.和 ...

  9. 对一致性Hash算法及java实现(转)

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

随机推荐

  1. 【Hibernate】hibernate框架的搭建

    1, Hibernate 是什么 Hibernate是java应用程序与数据库交互的开发的框架. Hibernate是一个开源,轻量级的ORM(对象关系映射)工具. 2,Hibernate框架的优点 ...

  2. 初识SolrJ开发, schema.xml的配置与服务初始化.

    schema.xml位于solr/collection1/conf/目录下,是Solr中用户定义字段类型及字段的配置文件. Solr版本: 4.6.0 第一步: Schema.xml说明 实例sche ...

  3. 【Algorithm】九种常用排序的性能分析

    最近间间断断的将9种排序算法用C实现,并且将其以博客笔记的形式记录下来,其中各个排序算法的描述部分特别参考了CSDN上太阳落雨的博客!现在就该来综合的分析这九种排序,让我们先来看看其算法复杂度和稳定性 ...

  4. 【java基础】Java反射机制

    一.预先需要掌握的知识(java虚拟机)  1)java虚拟机的方法区:  java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区.方法区的主要作用是存 ...

  5. 1 时间戳 2 C# 如何生成一个时间戳 3 js 时间加一分钟... 4 js string->date 5 js 取得当天0点 / 23:59:59 时间

    var str = 'Jan 23, 2019 10:25:47 AM';var strnow = new Date(str); 时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经 ...

  6. 如何利用 Visual Studio 自定义项目或工程模板(转载)

    在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...

  7. shell脚本监控cpu/内存使用率 转

    该脚本检测cpu和内存的使用情况,只需要调整memorySetting.cpuSetting.userEmail要发邮件报警的email地址即可 如果没有配置发邮件参数的哥们,已配置了的,直接飞到代码 ...

  8. 码字工作者的发文姿势—— 用MWeb+Markdown Here+七牛 轻松实现多平台发布

    码字工作者的发文姿势—— 用MWeb+Markdown Here+七牛 轻松实现多平台发布   1.对于写作你最头疼什么 对于大多数码字工作者来说,随时随地记录灵感,构思文章,集中书写,其实是一件令人 ...

  9. flowable Service介绍

    1 原始数据库表说明 ACT_RE_*: RE stands for repository. Tables with this prefix contain static information su ...

  10. Java 泛型(Generics) 综述

    一. 引子 一般的类和方法.仅仅能使用详细类型:要么是基本类型.要么是自己定义类型.假设要编写能够应用于多种类型的代码,这样的刻板的限制对代码的束缚就会非常大. 多态算是一种泛化机制,但对代码的约束还 ...