算法
斗 鹰
涉及JavaEE,数据结构与算法以自己平时写代码一些bug。
展开
-
数据结构之链表增删改查实现方式(Java)
链表链表是一种在物理上非连续、非顺序的数据结构,由若干个节点(node)所组成。单向链表的每一个节点又包含两部分,一部分是存放数据的变量data,另一部分是指向下一个节点的指针next。链表的第一个节点被称为头节点,最后一个节点被称为尾节点,尾节点的next指针指向空。链表是通过其中的next属性来确定下一个节点,来顺序存储。如图:下面主要说一下单链表的增删改查的实现方式以及...原创 2019-08-15 16:21:16 · 857 阅读 · 6 评论 -
画矩形
描述:根据参数,画出矩形。输入:输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。输出:输出画出的图形。样例输入:7 7 @ 0样例输出:@@@@@@@@ ...原创 2018-12-11 22:22:29 · 5764 阅读 · 1 评论 -
求出e的值
描述:利用公式e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 求e 。输入:输入只有一行,该行包含一个整数n(2<=n<=15),表示计算e时累加到1/n!。输出:输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。提示:1、e以及n!用double表示2、要输出浮点数、双精度数小数点后10位数字,可...原创 2018-12-11 21:43:59 · 7599 阅读 · 1 评论 -
统计满足条件的4位数个数
描述:给定若干个四位数,求出其中满足以下条件的数的个数: 个位数上的数字减去千位数上的数字,再减去百位数上的数字, 再减去十位数上的数字的结果大于零。输入:输入为两行,第一行为四位数的个数n,第二行为n个的四位数,数与数之间以一个空格分开。(n <= 100)输出:输出为一行,包含一个整数,表示满足条件的四位数的个数。样例输入:51234 13...原创 2018-12-11 22:07:31 · 5408 阅读 · 0 评论 -
求分数序列和
描述:有一个分数序列 q1/p1,q2/p2,q3/p3,q4/p4,q5/p5,.... ,其中qi+1= qi+ pi, pi+1=qi, p1= 1, q1= 2。比如这个序列前6项分别是2/1,3/2,5/3,8/5,13/8,21/13。求这个分数序列的前n项之和。输入:输入有一行,包含一个正整数n(n <= 30)。输出:输出有一行,包含一个浮点数...原创 2018-12-10 12:21:32 · 4045 阅读 · 0 评论 -
数字反转
描述:给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入:输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。输出:输出共 1 行,一个整数,表示反转后的新数。样例输入:样例 #1:123样例 ...原创 2018-12-10 12:21:08 · 975 阅读 · 0 评论 -
救援
描述:救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目以及每个屋顶的坐标 和人数都将由输入决定,求出所有人都到达大本营并登陆所用的时间。 在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表 示。救生船每次从大本营出发,以速度50 米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上的所有人,每...原创 2018-12-09 16:26:33 · 334 阅读 · 0 评论 -
人口增长问题
描述:我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?输入:一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。输出:输出最后的人口数,以亿为单位,保留到小数点后四位。1 <= x <= 100, 1 <= n <= 100。样例输入:13 10样例输出:13.1306算法:#in...原创 2018-12-09 16:20:08 · 7721 阅读 · 2 评论 -
石头剪子布
描述:石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。 游戏规则:石头打剪刀,布包石头,剪刀剪布。 现在,需要你写一个程序来判断石头剪子布...原创 2018-12-28 12:07:49 · 338 阅读 · 0 评论 -
统计数字字符个数
描述:输入一行字符,统计出其中数字字符的个数。输入:一行字符串,总长度不超过255。输出:输出为1行,输出字符串里面数字字符的个数。样例输入:Peking University is set up at 1898.样例输出:4算法:#include<stdio.h>#include<string.h>#d...原创 2018-12-26 19:00:57 · 6800 阅读 · 0 评论 -
输出亲朋字符串
描述:编写程序,求给定字符串s的亲朋字符串s1。 亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符; 给定字符串s的第二个字符的ASCII值加第三个字符的ASCII值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最 后一个字符由给定字符串s的最后一个字符ASCII值加s的第一个字符的ASCII值。...原创 2018-12-27 12:25:57 · 945 阅读 · 0 评论 -
基因相关性
描述:为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。输入:有...原创 2018-12-27 12:14:04 · 2771 阅读 · 4 评论 -
大整数加法
描述:求两个不超过200位的非负整数的和。输入:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入:2222222222222222222233333333333333333333样例输出:55555555555555555...原创 2018-12-19 16:25:08 · 489 阅读 · 4 评论 -
大整数减法
描述:求两个大的正整数相减的差。输入:共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。输出:一行,即所求的差。样例输入:99999999999999999999999999999999999999999999999999样例输出:9999999999999999999999990000...原创 2018-12-20 18:06:23 · 652 阅读 · 1 评论 -
八种排序算法(直接插入、shell、冒泡、快速、简单插入、堆排、归并、基数)的基本思想与实现、分析(时间复杂度、稳定性)以及全部代码实现
1、直接插入排序直接插入排序基本思想:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。排序过程:代码实现:public class InsertSort { public stat...原创 2019-08-01 14:16:33 · 1751 阅读 · 4 评论 -
紧急措施
描述: 近日,一些热门网站遭受黑客入侵,这些网站的账号、密码及email的数据惨遭泄露。你在这些网站上注册若干账号(使用的用户名不一定相同),但是注册时使用了相同的email。你此时拿到了那份泄露的数据,希望尽快将自己的密码更改。策略如下:根据email找到你的用户名和密码,然后更改密码。更改的规则为:小写和大写交换,非字母字符保持不变。输入:第一行为你的email地址...原创 2019-02-28 16:25:55 · 1138 阅读 · 0 评论 -
字符串移位包含问题
描述:对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。输入:一行,包含两个字符串,中间由单个空格隔...原创 2019-01-01 19:24:39 · 953 阅读 · 0 评论 -
验证子串
描述:输入两个字符串,验证其中一个串是否为另一个串的子串。输入:输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。输出:若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2) 否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1) 否则,输出 No substring。...原创 2019-01-01 18:12:19 · 1217 阅读 · 0 评论 -
整理药名
描述:医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、aspirin整理成Aspirin。输入:第一行一个数字n,表示有n个药品名要整理,n不超过100。接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。药品名由字母、数字和-...原创 2018-12-31 11:05:15 · 912 阅读 · 1 评论 -
加密的病历单
描述:小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。 在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。 经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子) 1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec ->...原创 2018-12-31 11:04:34 · 1331 阅读 · 1 评论 -
简单密码
描述:Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。密文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z明文:V W X Y Z A B C D E F G H I J K L M N ...原创 2018-12-30 11:31:41 · 759 阅读 · 0 评论 -
密码翻译
描述:在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。输入:输入一行,包含一个字符串,长度小于80个字符。输出:...原创 2018-12-30 10:53:17 · 2267 阅读 · 2 评论 -
字符替换
描述:把一个字符串中特定的字符全部用给定的字符替换,得到一个新的字符串。输入:只有一行,由一个字符串和两个字符组成,中间用单个空格隔开。字符串是待替换的字符串,字符串长度小于等于30个字符,且不含空格等空白符;接下来一个字符为需要被替换的特定字符;接下来一个字符为用于替换的给定字符。输出:一行,即替换后的字符串。样例输入:hello-how-are-you...原创 2018-12-29 10:38:21 · 1854 阅读 · 1 评论 -
配对碱基链
描述:脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。输入:一个字符串,表示一条碱基链。这个字符串只含有大写字母A、...原创 2019-01-03 22:39:16 · 1013 阅读 · 0 评论 -
合法 C 标识符
描述:给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。C语言标识符要求:1. 非保留字;2. 只包含字母、数字及下划线(“_”)。3. 不以数字开头。输入:一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。输出:一行,如果它是C语言的合法标识符,则输出yes,否则输出no。...原创 2018-12-29 10:22:18 · 1117 阅读 · 0 评论 -
计算2的n次方
描述:任意给定一个正整数N(N<=100),计算2的n次方的值。输入:输入一个正整数N。输出:输出2的N次方的值。样例输入:5样例输出:32核心思想:计算2的n次方也是依次相乘2,大于个位则进位,从后向前保存元素,所以要令初始值为1.算法:#include<stdio.h>int main(){ int ...原创 2019-02-14 15:37:00 · 11118 阅读 · 4 评论 -
含k个3的数
描述:输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。 例如,输入: 43833 3 满足条件,输出YES。如果输入:39331 3 尽管有3个3,但不能被19整除,也不满足条件,应输出NO。输入:m 和 k 的值,...原创 2018-12-06 19:30:35 · 7657 阅读 · 0 评论 -
求阶乘的和
描述:给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!)输入:输入有一行,包含一个正整数n(1 < n < 12)。输出:输出有一行:阶乘的和。样例输入:5样例输出:153递归算法:#include <stdio.h>int jc(int n){ if(n==0) ...原创 2018-11-30 18:28:45 · 2370 阅读 · 2 评论 -
开关灯
描述:假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。请问:...原创 2018-11-30 17:42:58 · 1294 阅读 · 1 评论 -
菲波那契数列
描述菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。样例输入:19 样例输出:4181算法:1、递归算法#include<stdio.h>#define m 99int main(){ int k,i; int a[m]={1,1}...原创 2018-11-27 21:14:37 · 2033 阅读 · 0 评论 -
向量点积计算
描述:在线性代数、计算几何中,向量点积是一种十分重要的运算。给定两个n维向量a=(a1,a2,...,an)和b=(b1,b2,...,bn),求点积a·b=a1b1+a2b2+...+anbn。输入:第一行是一个整数n。1 <= n <= 1000。第二行包含n个整数a1,a2,...,an。第三行包含n个整数b1,b2,...,bn。相邻整数之间用...原创 2018-12-04 20:45:21 · 10507 阅读 · 2 评论 -
石头剪刀布
描述:石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?输入:输入包含三行。第一行包含三个整数:N,NA,NB,分...原创 2018-12-04 20:28:01 · 2817 阅读 · 0 评论 -
有趣的跳跃
描述:一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1)。例如,1 4 2 3存在“有趣的跳跃”,因为差的绝对值分别为3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。你需要写一个程序判定给定序列是否存在“有趣的跳跃”。输入:一行,第一个数是n(0 < n < 3000),为序列长度...原创 2018-12-04 19:51:50 · 7533 阅读 · 1 评论 -
校门外的树
描述:某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区...原创 2018-12-04 19:22:47 · 1004 阅读 · 0 评论 -
分离整数的各个数位(0-100000000)
描述:给定一个整数,要求从个位开始分离出它的每一位数字。 输入:输入一个整数,整数在1到100000000之间。输出:从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。样例输入:12345样例输出:5 4 3 2 1C语言实现:#include<stdio.h>int main(){ int...原创 2018-11-29 18:42:04 · 16629 阅读 · 3 评论 -
求特殊自然数
描述:一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。 输入:无。输出:三行:第一行是此自然数的十进制表示;第一行是此自然数的七进制表示;第一行是此自然数的九进制表示。C语言代码:#include <stdio.h>int main(){ int a,b,c,m=...原创 2018-11-29 17:20:25 · 2792 阅读 · 0 评论 -
级数求和
描述:已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。样例输入:1样例输出:2C语言代码:#include <stdio.h>int main(){ int K; scanf("%d", &K);...原创 2018-11-29 17:10:45 · 1619 阅读 · 2 评论 -
质因数分解
描述:已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。输入:输入只有一行,包含一个正整数 n。对于60%的数据,6 ≤ n ≤ 1000。对于100%的数据,6 ≤ n ≤ 2*10^9。输出:输出只有一行,包含一个正整数 p,即较大的那个质数。样例输入:21样例输出:7算法:#include<stdio.h...原创 2018-12-02 11:18:12 · 559 阅读 · 0 评论 -
通过坐标计算三角形面积
描述平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。输入输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。输出输出也是一行,输出三角形的面积,精确到小数点后两位。 样例输入0 0 4 0 0 3样例输出6.00提示海伦公...原创 2018-11-24 23:18:13 · 7871 阅读 · 1 评论 -
Fibonacci数列
问题描述:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,...原创 2018-11-24 15:46:23 · 355 阅读 · 0 评论