随笔分类 -  算法

摘要:身份证号第18位是校验码,可以通过计算准确的验证身份证号是否正确。参考了网上的代码,自己修改了一些,写在这里备忘。 JavaScript代码: Java代码: 测试结果: 阅读全文
posted @ 2018-09-11 09:41 落枫飘飘 阅读(2936) 评论(0) 推荐(0)
摘要:我们知道,在 Excel 中,行数用数字表示,而列数是用字母表示的(如下图所示),有时候需要把它转换成数字来使用,或者把数字转换成字母。(例如使用POI操作Excel) 下面是转换代码,用来进行字母和数字之间的转换: 测试类: 测试执行的结果: 阅读全文
posted @ 2017-03-25 13:02 落枫飘飘 阅读(3691) 评论(0) 推荐(0)
摘要:问题描述: 农夫要把狼、白菜、羊带到河的对岸,但每次最多只能带一个,当农夫不在时,狼会吃羊,羊会吃白菜,因此狼和羊在同一岸时农夫必须也在,羊和白菜在同一岸时农夫也必须在。问:农夫应该怎样把他们安全带过去? 我们可以想到这样一个解决方案: 1、都在左岸2、农夫把羊带到右岸3、农夫独自回到左岸4、农夫把 阅读全文
posted @ 2016-09-25 14:00 落枫飘飘 阅读(2641) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2016-09-11 22:01 落枫飘飘 阅读(4) 评论(0) 推荐(0)
摘要:一个整数由个位、十位、百味...组成,我们知道整数可以用int型表示,那么一个整数到底是几位数呢?? 下面这个代码就是来计算位数的: 阅读全文
posted @ 2016-07-17 15:33 落枫飘飘 阅读(720) 评论(0) 推荐(0)
摘要:这个计算器不仅能够进行四则运算,还支持添加括号进行优先级计算,例如下面算式: Java源代码: 运行结果: 优化支持浮点数计算: 阅读全文
posted @ 2016-07-14 20:37 落枫飘飘 阅读(11975) 评论(4) 推荐(3)
摘要:(转自:http://www.jb51.net/article/54947.htm) 本文实例汇总了C语言实现的快速幂取模算法,是比较常见的算法。分享给大家供大家参考之用。具体如下: 首先,所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求 阅读全文
posted @ 2016-06-15 12:51 落枫飘飘 阅读(1188) 评论(0) 推荐(0)
摘要:1、《孙子算经》之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2、中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m|(a-b), 则称 a 和 b 模 m 同余, 记为 m 称为这个同余式的模. 定理(中国剩余定理): 设 m1,m2,...,mr 阅读全文
posted @ 2016-04-21 09:48 落枫飘飘 阅读(2743) 评论(1) 推荐(0)
摘要:当我们要处理非常大的数据时,平常用的数据类型已不足以表示,在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,这两个类在理论上只要计算机内存足够大就能够表示无线大的数。它们都在java.math.*包中,我们可以在API文档中进行查看: Java API 1. 阅读全文
posted @ 2016-04-19 23:18 落枫飘飘 阅读(2554) 评论(0) 推荐(0)
摘要:前言: 在计算机中数字表示的范围是有限制的,比如我们熟知的 int、float、double 等数据类型所能表示的范围都是有限的,如果我们要对位数达到几十位、几百位、上千位的大整数进行计算,这些数据类型显然不能满足我们的要求,因此我们需要通过算法来实现这些功能。 1、大数加法 两个大数我们可以用数组 阅读全文
posted @ 2016-04-13 15:07 落枫飘飘 阅读(43616) 评论(3) 推荐(11)
摘要:顺序查找算法 顺序查找是非常简单常用的查找算法,基本思路:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1。该算法的时间复杂度为O(n),如果数据量很大时查找效率会很低。 二分查找算法 二分查找(又称为折半查找) 阅读全文
posted @ 2016-04-12 22:34 落枫飘飘 阅读(10584) 评论(0) 推荐(1)
摘要:双重循环排序 双重循环排序算法是一种非常简单的排序算法,这种算法很容易让人理解,也很实用,但是排序的效率很低。基本思路是用第一个数与后面的所有数进行比较,然后把最小的数放到第一个位置,然后用第二个数与后面的所有数进行比较,然后把第二个最小的数放到第二个位置,然后用第三个数....最后用倒数第二个数进 阅读全文
posted @ 2016-04-08 22:07 落枫飘飘 阅读(6528) 评论(0) 推荐(0)
摘要:历届试题 最大子阵 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。 其中,A的子矩阵指在A中行和列均连续的一块。 输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。 接下来n行,每行m个整数, 阅读全文
posted @ 2016-04-08 21:38 落枫飘飘 阅读(575) 评论(0) 推荐(0)
摘要:历届试题 波动数列 时间限制:1.0s 内存限制:256.0MB 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3。 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢? 输 阅读全文
posted @ 2016-04-08 21:35 落枫飘飘 阅读(609) 评论(0) 推荐(0)
摘要:历届试题 小朋友排队 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程 阅读全文
posted @ 2016-04-08 21:14 落枫飘飘 阅读(581) 评论(0) 推荐(0)
摘要:历届试题 连号区间数 时间限制:1.0s 内存限制:256.0MB 问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1 阅读全文
posted @ 2016-04-08 20:53 落枫飘飘 阅读(3545) 评论(0) 推荐(0)
摘要:历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数。 +--*--+--+|10* 1|52|+--****--+|20|30* 1|*******--+| 1| 2| 3|+--+--+--+ 我们沿着图中的星号线剪开,得到两个 阅读全文
posted @ 2016-04-08 20:45 落枫飘飘 阅读(248) 评论(0) 推荐(0)
摘要:历届试题 错误票据 时间限制:1.0s 内存限制:256.0MB 问题描述 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。 阅读全文
posted @ 2016-04-08 20:41 落枫飘飘 阅读(353) 评论(0) 推荐(0)
摘要:历届试题 翻硬币 时间限制:1.0s 内存限制:256.0MB 问题描述 小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 阅读全文
posted @ 2016-04-08 20:37 落枫飘飘 阅读(344) 评论(0) 推荐(0)
摘要:历届试题 买不到的数目 时间限制:1.0s 内存限制:256.0MB 问题描述 小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 你可以用计算机测试一下,在这种 阅读全文
posted @ 2016-04-08 20:34 落枫飘飘 阅读(345) 评论(0) 推荐(0)