java算法
文章平均质量分 59
旧梦如烟
这个作者很懒,什么都没留下…
展开
-
为我家大宝贝写的提取word里例题的程序
情景是这样的,我家大宝贝备考cpa,有很多word文档,她想把很多文档中的例题全部提取出来,然后生成另一个文档。import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;原创 2017-09-11 00:45:03 · 394 阅读 · 0 评论 -
用java实现链表并解决约瑟夫环问题
package 栈和队列;/** * * 数到3的人出列 ,看最后能剩下谁 * @author wangmeng * */class Node { public Object data; public Node next; public Object getData() { return data; } public void setData(Objec原创 2013-08-05 10:38:48 · 2405 阅读 · 0 评论 -
自己实现队列
public class 自己实现队列 { private static Object[] array = new Object[10]; private static int length = 0; public void push(T data){//入队 if(length >= array.length - 1){//当自己定义的数组长度不够时,需要扩容 Obje原创 2013-08-05 09:40:38 · 659 阅读 · 0 评论 -
一个数组中寻找第二大数字
public class find第二大数 { public static void main(String[] args) { int[] a = new int[]{1,2,5,12,45,5454,5,5,5,55,54,54,21,1121,212,54504}; findSecondMax(a); } private static void findSecondMa原创 2013-07-27 23:55:36 · 478 阅读 · 0 评论 -
回型方阵
import java.util.Arrays;import javax.swing.JOptionPane;public class 回型方阵 { private static final int UP = 1; private static final int LEFT = 2; private static final int RIGHT = 3; private sta原创 2013-07-27 23:34:24 · 1477 阅读 · 0 评论 -
截取字符串(编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输...)
import java.util.Arrays;import java.util.Scanner;public class 截取字符串 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String s = scan.nextLine(); int a原创 2013-08-02 20:08:28 · 1189 阅读 · 0 评论 -
分割字符串(有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数)
public class 分割字符串 { public static void main(String[] args) { String s = "aaaabbc中国1512"; int zh = 0 ; int en = 0; int num = 0; for(int i = 0; i< s.length() ;i++){ char c = s.charAt(i);原创 2013-08-02 20:17:43 · 4635 阅读 · 0 评论 -
java分解质因数
import java.util.Scanner;public class Test { static StringBuffer sb = new StringBuffer(); public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextI原创 2013-07-23 22:18:26 · 580 阅读 · 0 评论 -
合并排序
import java.util.Arrays;public class 合并排序 { public static void main(String[] args) { //System.out.println(Arrays.toString(c)); int[] d = new int[]{1,3,5,7,9,2,4,6,8}; int[] f = mergeSort(原创 2013-07-30 13:28:02 · 469 阅读 · 0 评论 -
自己模拟超大数加法
import java.math.BigInteger;import java.util.Scanner;public class 自己模拟超大叔加法 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("请输入第一个原创 2013-07-30 12:23:06 · 486 阅读 · 0 评论 -
栈验证表达式中的括号是否匹配
import java.util.Stack;public class 语法匹配 { public static void main(String[] args) { String s = "["; 检测(s); } private static void 检测(String s) { Stack stack = new Stack(); for(int i = 0原创 2013-08-05 08:54:41 · 841 阅读 · 0 评论 -
机器人行走( * 某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。 例如,我们)
/** * 某少年宫引进了一批机器人小车。可以接受预先输入的指令,按指令行动。小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字)。 例如,我们可以对小车输入如下的指令: 15L10R5LRR10R20 则,小车先直行15厘米,左转,再走10厘米,再右转,... 不难看出,对于此指令串,小车又回到了出发地。 你的任务是:编写程原创 2013-07-01 00:36:39 · 2561 阅读 · 0 评论 -
数组盛水问题
给定任意一个整数数组,组内元素无顺序,例如:[2,5,1,2,3,4,7,7,6] 以这个数组的值为高想象一些墙,如下图:原创 2015-01-29 15:43:48 · 1472 阅读 · 0 评论 -
爬虫程序开发指南(java)
sosoo spider开发指南 Sosoo 1.0网络爬虫程序---用户开发手册编写人:王建华(rimen/jerry)编写目的:基于sosoo定 制web spider程序的编程人员。 目录转载 2013-12-19 20:35:35 · 799 阅读 · 0 评论 -
list中的组合所有情况(无需排列,只是组合所有的情况)
import java.util.ArrayList;import java.util.HashSet;import java.util.List;public class 组合所有情况 { public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.a原创 2013-10-06 16:54:59 · 1725 阅读 · 0 评论 -
某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天。 上级要求每个人每周的工作日和休息日安排必须是固定的,不能在周间变更。 此外,由于工作需要,还有如下要求:
package 排日程;import java.util.ArrayList;import java.util.List;public class 排日程 { //先列举每个人所有的情况 static List list = new ArrayList(); int[][] array = new int[7][7]; static String[] str = ne原创 2013-08-28 20:18:38 · 2922 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
import java.util.Scanner;public class 求两个数的最大公约数{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); int c = 计算原创 2013-08-09 19:14:06 · 592 阅读 · 0 评论 -
哈弗曼树的java实现
package 哈弗曼树;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;class Node{ String data; double weight; Node leftChild; Node rightChild; pu原创 2013-08-07 11:24:39 · 639 阅读 · 0 评论 -
自己实现栈
public class 自己实现栈 { private static Object[] array = new Object[10]; private static int length = 0; public void push(T data){//入栈 if(length >= array.length - 1){//当自己定义的数组长度不够时,需要扩容 Objec原创 2013-08-05 09:30:47 · 665 阅读 · 0 评论 -
密码发生器(在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了)
/** * 在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全; 如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了... 这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,原创 2013-07-01 17:50:07 · 2148 阅读 · 0 评论 -
泊松分酒(泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。 有一次闲暇时,他提出过一个有趣的问题,后称为:)
/** * 泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。 有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是: “韩信走马分油”问题。 有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个原创 2013-07-01 10:23:04 · 4359 阅读 · 0 评论 -
买不到的数目(小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗)
/** * 买不到的数目小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入:原创 2013-06-24 22:19:28 · 11403 阅读 · 0 评论 -
你听说过角谷猜想吗?任意的正整数,比如 5, 我们从它开始,如下规则计算如果是偶数,则除以2,如果是奇数,则乘以3再加1.如此循环,最终必会得到“1” !
/** * 你听说过角谷猜想吗?任意的正整数,比如 5, 我们从它开始,如下规则计算:如果是偶数,则除以2,如果是奇数,则乘以3再加1.如此循环,最终必会得到“1” !比如 5 的处理过程是:5168421一个正整数经过多少步才能变成1, 称为角谷步数。对于5而言,步数也是5对于1,步数为0本题的要求是,从标准输入给定一个整数n(1<n<300)表示角谷步数原创 2013-06-25 21:15:57 · 4724 阅读 · 0 评论 -
看这个算式:☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种可能的正确填写方法?
/** * 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字。 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 295 + 173 = 468 173 + 295 = 468 183 + 492 = 675 以上都是正确的填写法!原创 2013-06-25 20:16:48 · 6107 阅读 · 0 评论 -
匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4
/** * * 匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行智力训练: 1 2 3 4 5 6 7 8 9 = 110; 请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)原创 2013-06-25 18:41:23 · 2755 阅读 · 0 评论 -
122345这6个数字,输出它所有可能的组合;要求4不能在第3位,3和5不能相连。
122345这6个数字,输出它所有可能的组合;要求4不能在第3位,3和5不能相连。/** * 122345这6个数字,输出它所有可能的组合;要求4不能在第3位,3和5不能相连。 * */import java.util.ArrayList;import java.util.List;public class 有条件排列 { static List list = new A原创 2013-06-25 17:11:45 · 2402 阅读 · 0 评论 -
排它平方数小明正看着203879 这个数字发呆。原来,203879 * 203879 = 41566646641
/** * 排它平方数小明正看着203879 这个数字发呆。原来,203879 * 203879 = 41566646641 这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!再归纳一下筛选要求:1. 6位正整数2. 每个数位上的数字不同3. 其平原创 2013-06-24 23:42:41 · 4351 阅读 · 0 评论 -
保留小数点后n位
import java.math.BigDecimal;public class 保留小数点后n位 { public static void main(String[] args) { System.out.println(new BigDecimal(0.1234567).setScale(6, BigDecimal.ROUND_DOWN));//不四舍五入 Sys原创 2013-06-24 20:22:46 · 738 阅读 · 0 评论 -
排座位(安排:3个A国人,3个B国人,3个C国人坐成一排。)
/** * * 安排:3个A国人,3个B国人,3个C国人坐成一排。要求不能使连要续的3个人是同一个国籍。求所有不同方案的总数? * @author wangmeng * */public class 排座位 { static int sum = 0; public static void main(String[] args) { char[] c = new c原创 2013-06-24 19:15:23 · 1446 阅读 · 0 评论 -
古堡算式(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA)
/** * * 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也是!” 于是,两人沉默了好久,还是没有算出合适的结果来。 请你利用计算机的优势,找到破解的答案。 把 ABCDE 所代表的数字写出来。 答案写在“解原创 2013-06-23 23:26:45 · 3732 阅读 · 0 评论 -
棋盘上的麦子
import java.math.BigInteger; public class 棋盘上的麦子 { /** * 你一定听说过这个故事。国王对发明国际象棋的大臣很佩服, * 问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子, * 在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两原创 2013-06-23 21:52:14 · 2387 阅读 · 0 评论 -
五个砝码问题(用三进制)
import java.util.Scanner;/**5个砝码用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。本题目要求编程实现:对用户给定的重量,给出砝码组合方案。例如:用户输入:5程序输出:9-3-1用户输入:19程序输出:原创 2013-06-22 17:51:07 · 1021 阅读 · 0 评论 -
猜算式 □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。
/** * 看下面的算式:□□ x □□ = □□ x □□□它表示:两个两位数相乘等于一个两位数乘以一个三位数。如果没有限定条件,这样的例子很多。但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。该算式中1至9的每个数字出现且只出现一次!比如:46 x 79 = 23 x 15854 x 69 = 27 x 13854 x 93 = 27 x 186.原创 2013-06-24 22:53:57 · 4198 阅读 · 0 评论 -
java Scanner 中 next()方法和nextLine()区别
import java.util.Scanner;/** * next方法的工作原理: * 从一行中扫描,直到碰到特定的标示符,空格或是换行,或许其前面的串, * 而nextLine()属于那种“见钱眼开”,看见"\n"就收了,然后扫描\n之前的内容 * @author wangmeng * */public class Test { public static void原创 2013-06-25 00:23:46 · 938 阅读 · 0 评论 -
五位数字全排列(生成一个五位数字,每位上的数字都不相同)
import java.util.ArrayList;import java.util.List;/** * 产生一个5位数,这个五位数的每个数字都必须不同 打印所有的这种五位数 * * @author wangmeng * */public class 五位数全排列 { public static void main(String[] args) { L原创 2013-06-24 11:36:30 · 4969 阅读 · 1 评论 -
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程:1、从卡号最后一位数字开始,逆
import java.util.Scanner;/** * 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心, * 因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。该校验的过程:1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9原创 2013-06-30 23:03:47 · 2074 阅读 · 0 评论 -
从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。不同的取法输出顺序可以不考虑。
/** * 从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。不同的取法输出顺序可以不考虑。例如:输入:abc则输出:abc输入:abcd则输出:abcabdacdbcd输入:abcaa则输出:abc */import java.util.Arra原创 2013-06-30 11:40:45 · 1508 阅读 · 0 评论 -
任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432, 一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,
/** * 任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。比如,刚才的数字会落入:[82962, 75933, 63954, 61974] 这个循环圈。请编写程序,找到5位原创 2013-06-30 16:58:32 · 5707 阅读 · 0 评论 -
不同的取法输出顺序可以不考虑。取字符( 从标准输入读入一个由字母构成的串(不大于30个字符)。从该串中取出3个不重复的字符,求所有的取法。取出的字符,要求按字母升序排列成一个串。)
import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Scanner;public class 取字符 { static List> resultList = new ArrayList>();原创 2013-06-30 10:39:26 · 896 阅读 · 0 评论 -
逻辑判断:A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束 1. 如果A参加,B也参加;
/** * A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束0:1 2 3 4 5 6 7 8 9 1. 如果A参加,B也参加; 2. 如果C不参加,D也不参加; 3. A和C中只能有一个人参加; 4. B和D中有且仅有一个人参加; 5. D、E、F、G原创 2013-06-27 19:56:10 · 5496 阅读 · 0 评论