算法应用之百钱买白鸡

案列说明:主要内容是:公鸡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. Android的API版本和名称对应关系

    Android版本名和API Level关系全称 Android的版本 Android版本名称Code name Android的API level Android 1.0 (API level 1) ...

  2. LINUX-vmstat命令讲解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况. 一般vmstat工具的使用是通过两个 ...

  3. Fuel4d 2.3 公布

    [版本号编号]:Fuel4D 2.3. [公布日期]:2014年10月20日. [编译环境]:UNICODE.VS2010.x86. [开发环境]:ANSI/UTF-8/UNICODE.VS2005/ ...

  4. FreeSWITCH媒体转码配置

    一.说明: FreeSWITCH版本1.6.13二.测试准备 软电话A的语音编码只配置iLBC:软电话B的语音编码只配置PCMU: A->B,编码协商失败,收到488消息. 三.修改文件vars ...

  5. C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. InlineModelAdmin对象的学习

    一.InlineModelAdmin的介绍 管理界面可以在与父模型相同的页面上编辑模型.这些被称为内联. Django提供了两个子类,InlineModelAdmin它们是: TabularInlin ...

  7. 用Entityframework 调用Mysql时,datetime格式插入不进去数据库的解决办法。

    1. 打开Model.edmx, 2. 选择userinfo中的createtime字段的属性 3. storegeneratedpattern设置值为None

  8. 查询系统负载信息 Linux 命令详解

    linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长 时间,信息显示依次为:现在时间.系统已经运 ...

  9. 【Unity】7.2 鼠标输入

    分类:Unity.C#.VS2015 创建日期:2016-04-21 一.简介 在桌面系统的游戏中,鼠标输入是最基本的输入方式之一.游戏很多操作都需要鼠标来完成,例如武器的瞄准和开火.菜单的单击.物体 ...

  10. NonWindowJoin

    package org.apache.flink.table.runtime.join /** * Connect data for left stream and right stream. Bas ...